Stap 8: Beschermd uw code
Deze code om veilig te maken, gewoon de input van de gebruikers te ontsnappen. Dit kan worden gedaan, bijvoorbeeld met behulp van de methode mysql_real_escape_string. Een andere functie mogelijk addslashes. Zo zou worden met behulp van een "veilige" oplossing:
$query = 'SELECT * FROM `user` WHERE `email` = \''.mysql_real_escape_string($_POST['email']).'\' AND `password` = \''.md5($_POST['password']).'\'';
In plaats van
SELECT * FROM `user` WHERE `email` = 'test OR `id` = 1 OR 1 = \'' AND `password` = '098f6bcd4621d373cade4e832627b4f6'
Dus is dit de laatste php-code:
test OR `id` = 1 OR 1 = \'
En de berekende query is:
Dus zoals je zien kunt, de enkele aanhalingstekens in de tekenreeks zijn nu ontsnapt en niet langer eindigt de mysql-tekenreeks. Dit zorgt ervoor dat de query om te zoeken naar het volgende e-mail adres:
En natuurlijk, dit zal falen, want er geen overeenkomende email in de database is.