SQL-Injection-Angriffe erfolgen bei Benutzereingaben ist falsch kodiert. Typischerweise besteht die Benutzereingabe aus einigen Daten, die der Benutzer mit seiner Abfrage sendet, d. h. Werte in $_GET
, $_POST
, $_COOKIE
, $_REQUEST
, oder $_SERVER
Arrays. Benutzereingaben können jedoch auch aus einer Vielzahl anderer Quellen stammen, wie z. B. Sockets, entfernte Websites, Dateien usw. Daher sollten Sie wirklich alles außer Konstanten behandeln (wie 'foobar'
) als Benutzereingabe .
In dem von Ihnen geposteten Code mysql_real_escape_string
wird verwendet, um Benutzereingaben zu kodieren (=zu maskieren). Der Code ist also korrekt, d. h. erlaubt keine SQL-Injection-Angriffe.
Beachten Sie, dass es sehr leicht ist, den Aufruf von mysql_real_escape_string
zu vergessen - und einmal ist genug für einen erfahrenen Angreifer! Daher möchten Sie vielleicht das moderne PDO
verwenden mit vorbereiteten Statements
statt adodb.