Une injection SQL est une technique de piratage informatique qui consiste Ă insĂ©rer du code SQL malveillant dans une requĂȘte envoyĂ©e Ă une base de donnĂ©es, gĂ©nĂ©ralement via un formulaire ou une URL.

đ Principe simple
Quand un site web demande des informations (ex : identifiant + mot de passe), il construit souvent une requĂȘte SQL comme :
SELECT * FROM utilisateurs WHERE nom = 'admin' AND mot_de_passe = '1234';
đ Si le site est mal sĂ©curisĂ©, un attaquant peut entrer quelque chose comme :
admin' OR '1'='1
Ce qui donne :
SELECT * FROM utilisateurs WHERE nom = 'admin' OR '1'='1';
đ„ RĂ©sultat : la condition est toujours vraie â lâattaquant peut se connecter sans mot de passe.
â ïž Pourquoi câest dangereux ?
Une injection SQL peut permettre de :
- accéder à des comptes sans autorisation
- voler des données (mots de passe, infos personnelles)
- modifier ou supprimer des données
- parfois prendre le contrĂŽle complet du serveur
đĄïž Comment sâen protĂ©ger ?
Les développeurs utilisent plusieurs techniques :
- requĂȘtes prĂ©parĂ©es (prepared statements) â (la meilleure solution)
- validation et filtrage des entrées utilisateur
- utilisation dâORM (comme Django ORM ou Hibernate)
- limiter les permissions de la base de données
đ§ Ă retenir
đ Une injection SQL exploite une mauvaise gestion des entrĂ©es utilisateur
đ Câest lâune des failles de sĂ©curitĂ© les plus connues et dangereuses
