Accueil > Glossaire Cybersécurité > Injection SQL 🔴 Attaque

Injection SQL 🔴 Attaque

Une injection SQL (SQL injection en anglais, ou SQLi) est une technique malveillante utilisée par des attaquants pour compromettre la sécurité d’une application web.

Elle consiste à insérer du code SQL malveillant dans les champs de saisie d’une application web afin de manipuler la base de données sous-jacente. Elle exploite les vulnérabilités dans la façon dont l’application traite les entrées utilisateur et construit ses requêtes SQL.

Une injection SQL est un des nombreux types d’injections malveillantes.

 

Google - Noto Color Emoji 15.0 (Animated) Fonctionnement

Le principe de base est le suivant :

  1. L’attaquant insère du code SQL malveillant dans un champ de saisie (formulaire, URL, etc.)
  2. L’application intègre ce code sans le filtrer correctement dans sa requête SQL
  3. La base de données exécute la requête modifiée, permettant à l’attaquant d’accéder ou de manipuler les données

 

👉 Exemples

Voici quelques exemples courants d’injections SQL :

  • Contournement d’authentification :
    sql
    SELECT * FROM users WHERE username = 'admin' --' AND password = 'mot_de_passe'
  • Le -- commente la suite de la requête, permettant de se connecter sans mot de passe.
  • Extraction de données :
    sql
    SELECT * FROM users WHERE id = 1 UNION SELECT username, password FROM users --
  • Cette injection permet de récupérer tous les noms d’utilisateurs et mots de passe.

 

💉 Comment y remédier

Plusieurs bonnes pratiques permettent de se protéger :

  1. Utiliser des requêtes paramétrées ou des procédures stockées
  2. Valider et filtrer toutes les entrées utilisateur
  3. Appliquer le principe du moindre privilège pour les comptes de base de données
  4. Utiliser des outils de détection et de prévention des injections SQL
  5. Former les développeurs aux bonnes pratiques de sécurité
Vers la ORSYS Cyber Academy : un espace gratuit dédié à la cybersécurité