Vous avez des améliorations (ou des corrections) à proposer pour ce document :
je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Accès à une base de données relationnelle : Problématiques d'injection SQL
L'envoie des données proposées dans l'ordre SQL (par le biais des concaténations, produit finalement l'ordre SQL suivant :
select * from T_Users where login='knownUser' -- and password='???'
Ainsi, le test sur le mot de passe est ignoré, car placé en commentaire SQL (--). Cela permet donc de se connecter en connaissant uniquement un login !
Pire encore, en saisissant « ???' or 1=1 -- » pour le login, puis n'importe quoi pour le mot de passe, on court-circuite aussi le test sur l'identifiant.
select * from T_Users where login='???' or 1=1 -- and password='???'
On retourne donc le premier utilisateur de la table. Mais qui est-ce ?
Très certainnement, l'administrateur du système car un développeur créé quasiment toujours ce compte en premierdans la base de données !
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :