Błąd ten umożliwia modyfikacje zapytania, czy nawet wykonanie dodatkowego zapytania (np. usuwającego rekordy). Załóżmy że mamy takie zapytanie MySQL
$zapytanie = “DELETE FROM users WHERE uzytkownik=’$_GET[‘$del_user’]'”;
Wszystko przebiegnie poprawnie jeśli zmienna $_GET[‘$del_user’] przyjmie wartość „Nowak”, co jedna gdy jakiś złośliwy użytkownik poprzez modyfikację adresu przypisze tej zmiennej wartość “Nowak’ OR ‘1’=’1 “? Wszystkie rekordy z tabeli users zostaną usunięte.
Aby takim atakom zapobiec należy sprawdzać wszystkie dane pochodzące od użytkownika. W przypadku bazy MySQL do tego celu należy stosować funkcję (która działa podobnie jak funkcja addslashes() , aczkolwiek do tego celu nadaje się lepiej )
mysql_real_escape_string();
Ponadto w swoim zapytaniu (w przypadku MySQL), niezależnie od typu danych obejmuj je w pojedynczych cudzysłowach, należy też dokładnie filtrować wszystkie dane pochodzące od użytkowników skryptu.