Forum de discussion
Forum « Programmation ASP » (archives)
Mephisto, ton authentification n'est pas secure
Envoyé: 13 mai 2004, 12h35 par Salem
sql = "SELECT * FROM users WHERE login ='" & Request.Form("login") & "' AND password ='" & Request.Form("password") & "';"
Maintenant, si un utilisateur entre ceci comme username et password :
' or '' = '
Par consequent ta requete SQL devient :
sql = "SELECT * FROM users WHERE login ='' or '' = '' AND password ='' or '' = '';"
Et donc, ta requete retournera tous les enregistrement de ta table users, et l'utilisateur sera authetifie en tant que celui retourne par le 1er enregistrement de ton recordset.
Moralite :
1- Il faut interdir les apostrophes et autres guillemets dans tes usernames,
2- Ta requete devrait verifier le username uniquement, et ton code asp verifier si le password est correct.
Exemple:
sql = "SELECT * FROM users WHERE login ='" & Request.Form("login") & "'"
rs.open "sql", cnn
if rs("password") = Request.Form("password") then
' ok
else
' pas ok
end if
Réponses
|