LIVE: New phishing campaigns targeting mobile users —View latest threats →

Back to Tutorials
Avancé 14 min de lecture

Injection SQL : Comment ça fonctionne et comment l'arrêter

L'injection SQL reste une des vulnérabilités les plus exploitées. Voyez comment une attaque extrait des données et apprenez les défenses efficaces qui l'arrêtent.

10 janvier 2026

Qu'est-ce que l'injection SQL ?

L'injection SQL (SQLi) se produit quand une application intègre des données utilisateur directement dans une requête SQL sans les assainir correctement. Un attaquant peut insérer des commandes SQL malveillantes pour lire, modifier ou supprimer des données de la base de données.

Exemple d'attaque

Code vulnérable :

query = "SELECT * FROM users WHERE username = '" + username + "' AND password = '" + password + "'"

Ce qu'un attaquant entre comme nom d'utilisateur :

admin' --

La requête résultante :

SELECT * FROM users WHERE username = 'admin' --' AND password = '...'

Le -- commente le reste de la requête. L'attaquant se connecte comme admin sans connaître le mot de passe.

Types d'injection SQL

  • In-band SQLi — résultats retournés directement dans la réponse
  • Blind SQLi — pas de résultats visibles, l'attaquant déduit les informations via des questions vrai/faux
  • Out-of-band SQLi — données extraites via un canal différent (requêtes DNS)

Comment prévenir l'injection SQL

Requêtes paramétrées (la solution principale) :

cursor.execute("SELECT * FROM users WHERE username = %s AND password = %s", (username, password))

Autres mesures :

  • ORM (SQLAlchemy, Hibernate) — utilisent automatiquement des requêtes paramétrées
  • Validation des entrées — rejetez les entrées inattendues
  • Principe du moindre privilège — l'utilisateur DB n'a que les permissions nécessaires
#SQL injection#web security#OWASP#secure coding#databases