Non, ici ce n'est pas utile, on aurait très bien pu entrer juste admin" //
On rajoute généralement une condition 1 = 1 ou "" = "" pour que, le OR étant prioritaire sur le AND, la condition reste vraie quel que soit l'ordre.
Dans l'exemple ci-dessus, supposons que le test soit fait en sens inverse:
'SELECT * FROM users WHERE password="'.md5($pass).'" AND login="'.$login.'"'
si on entre admin" OR 1=1 // , la condition devient:
'SELECT * FROM users WHERE password="'.md5($pass).'" AND login="admin" OR 1=1 //"'
password="'.md5($pass)'" est sûrement faux, login="admin" est peut-être faux, mais 1=1 est toujours vrai. Donc le test passe.
Partager