Injecția SQL. Injecția SQL Bazată pe "" = "" este întotdeauna adevărată.

Injecția SQL Bazată pe "" = "" este întotdeauna adevărată

Iată un exemplu de autentificare a utilizatorului pe un site web:

Nume utilizator: John Doe

Parola: myPass

Exemplu:
 
uName = getRequestString("username");
uPass = getRequestString("userpassword");

sql = 'SELECT * FROM Users WHERE Name ="' + uName + '" AND Pass ="' + uPass + '"'

Rezultat:
 
SELECT * FROM Users WHERE Name ="John Doe" AND Pass ="myPass"

Un hacker ar putea avea acces la numele de utilizator și parolele (user names și passwords) dintr-o bază de date, introducând pur și simplu "OR" "=" în caseta de text a numelui de utilizator sau a parolei (user name sau password):

Nume utilizator: "sau" "="

Parola: "sau" "="

Codul de la server va crea o declarație SQL validă astfel:

Rezultat:
 
SELECT * FROM Users WHERE Name ="" or ""="" AND Pass ="" or ""=""

SQL de mai sus este valid și va returna toate rândurile din tabelul „Utilizatori” (Users), deoarece OR „„ = „„ este întotdeauna TRUE.