CyberGlossary

Attaques et menaces

Injection SQL

Aussi appelé: SQLi

Définition

Attaque insérant des fragments SQL contrôlés par l'attaquant dans des requêtes construites avec des entrées non fiables, permettant vol, modification ou compromission totale de la base.

L'injection SQL (SQLi) se produit lorsqu'une application concatène des entrées utilisateur dans des instructions SQL sans séparation correcte entre code et données. Avec des charges utiles telles que ' OR 1=1-- ou UNION SELECT, un attaquant peut contourner l'authentification, lire des tables arbitraires, modifier ou supprimer des enregistrements et, sur des bases mal configurées, exécuter des commandes système. Les variantes incluent les injections basées sur les erreurs, sur UNION, aveugles (booléennes ou temporisées) et hors bande. La vulnérabilité figure régulièrement au Top 10 OWASP. La défense de référence repose sur les requêtes paramétrées (prepared statements) avec variables liées, complétées par la validation d'entrée, des comptes BD au moindre privilège, des ORM durcis et un WAF en contrôle compensatoire.

Exemples

  • Un formulaire de connexion où utilisateur='admin'--' permet de se connecter sans mot de passe.
  • Un endpoint de recherche qui expose la colonne password_hash via un UNION SELECT forgé.

Termes liés