Sécurité
Attaque qui glisse du code SQL dans une donnée venue de l'extérieur, champ de formulaire, en-tête HTTP ou valeur relue en base, pour que le moteur de la base l'exécute comme une instruction légitime. Elle exploite les applications qui assemblent leurs requêtes en collant du texte au lieu de passer des paramètres.
Mécanisme : L'application concatène une saisie directement dans le texte de la requête. Un guillemet bien placé ferme la chaîne prévue, et tout ce qui suit devient du code que la base exécute sans broncher.
Conséquences : Selon les droits du compte applicatif : contournement d'authentification avec un `' OR '1'='1`, lecture de tables entières, modification ou suppression de données, parfois exécution de commandes sur le serveur. Une seule entrée vulnérable suffit.
Parade : Les requêtes paramétrées séparent le code de la donnée : la saisie reste une valeur, jamais une instruction. Vingt ans de métier apprennent que la liste noire de caractères interdits oublie toujours celui qui comptait, et bloque en prime tous les clients nommés O'Brien.
Défense en profondeur : Un compte de base aux privilèges minimaux limite les dégâts, un ORM bien employé évite la concaténation à la main. Un WAF filtre une partie des tentatives en appoint, sans jamais remplacer une requête correctement écrite.
Explication de la marmotte
Imagine un guichet où tu remplis une fiche avec ton nom. L'employé recopie ta réponse mot pour mot dans un ordre qu'il transmet à l'archiviste : « Apporte le dossier de [ton nom] ». Si tu écris comme nom « Dupont, et aussi tous les dossiers de la ville », l'archiviste, qui obéit sans réfléchir, apporte tout. Une injection, c'est exactement ça : glisser des ordres à l'endroit où on attendait une réponse. La parade consiste à mettre ta réponse dans une case à part, que l'archiviste lit toujours comme un nom, jamais comme une consigne.
Où ce terme est utilisé
- CWE-89 : injection SQL, la classe de la requête concaténée (11 occurrences)
- CWE Top 25 2025 : les vingt-cinq faiblesses logicielles les plus dangereuses (6 occurrences)
- L'injection de prompt n'est pas un bug (5 occurrences)
- Attaque ANSSI et Dinum 2026 : la faille Metabase, c'est celui qui dit qui est (4 occurrences)
- Exploiter une injection SQL aveugle temporelle (3 occurrences)
- JavaScript et SQL côté web, ce qu'il faut savoir des deux langages (3 occurrences)
- Intégrer SAST, DAST et IAST dans une CI/CD (2 occurrences)
- Revue de sécurité du code généré par un assistant IA (2 occurrences)
- AIPD RGPD article 35 : méthode, critères et impact sur l'architecture (1 occurrence)
- Bug bounty gouvernemental et immunité pénale (1 occurrence)
