L'injection SQL est une attaque qui consiste à manipuler les requêtes envoyées à la base de données en insérant du code SQL malveillant via les entrées utilisateur. Elle peut permettre de lire, modifier ou supprimer des données sensibles, voire de prendre le contrôle complet du serveur.
Un risque majeur
L'injection SQL figure parmi les vulnérabilités les plus destructrices du web. Un simple champ de recherche mal protégé peut exposer l'intégralité d'une base de données : identifiants, mots de passe, données personnelles… Les conséquences juridiques et financières peuvent être considérables.
Prévention et bonnes pratiques
La défense repose sur l'utilisation de requêtes paramétrées (prepared statements) et d'un ORM comme Doctrine qui empêche par conception la concaténation directe de valeurs dans le SQL. Il est également crucial de valider et filtrer toutes les entrées utilisateur côté serveur.
Avec les outils modernes, l'injection SQL est une faille entièrement évitable. Son existence dans une application traduit un manque de rigueur dans les pratiques de développement.