SQL échantillon d'injection simple


Exemple

Si l'instruction SQL est construite comme ceci:

SQL = "SELECT * FROM Users WHERE username = '" + user + "' AND password ='" + pw + "'";
db.execute(SQL);

Un pirate pourrait alors récupérer vos données en donnant un mot de passe comme pw' or '1'='1 ; l'instruction SQL qui en résultera sera:

SELECT * FROM Users WHERE username = 'somebody' AND password ='pw' or '1'='1'

Celui-ci passera la vérification du mot de passe pour toutes les lignes de la table Users car '1'='1' est toujours vrai.

Pour éviter cela, utilisez les paramètres SQL:

SQL = "SELECT * FROM Users WHERE username = ? AND password = ?";
db.execute(SQL, [user, pw]);