Hallo
gibt es eine Funktion, mit der ich die Arrays $HTTP_POST_VARS und $HTTP_GET_VARS auf etwaige SQL Injection Versuche überprüfen kann?
Dies müsste doch theoretisch der beste Weg sein, SQL Injections abzufangen.
Ideal wäre, wenn die Funktion die Arrays sichert und dann zurückgibt.
Also die SQL I. rausfiltert.
mfg chaser
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Vor einiger Zeit habe ich dasselbe in einem Artikel entdeckt.
Also hab ich das mal ausprobiert.
Eine Eingabe vom Benutzer, die direkt im Query landet:
$Query=mysql_query("SELECT * FROM auth WHERE user='$user' AND pw='$pw'");
Eingabe:
$user: WLaner
$pw: ' OR ''='
So, wurde im Artikel "behauptet", kann man jetzt auf jeden Account zugreifen, ohne ein korrektes Passwort einzugeben. (Ist mir auch klar, wenn ich den finalen Query anschaun, obwohl ich des mit ''='' nicht kenn.)
Bei meinem Test wurde der Login-Versuch allerdings abgewiesen.
Also hab ich mir die POST-Vars mal mit PHP ausgeben lassen und siehe da:
echo $user; // WLaner
echo $pw; // \' OR \'\'=\'
Die Variablen wurden also schon vorher escaped, oder wie ist das anzunehmen? Mit mysql_real_escape_string wurde das ganze doppelt escaped...
Gibts vllt. in PHP schon eine Art Sicherheitseinstellung oder hab ich da einfach was falsch gemacht :-) ? Vllt. weist du da ja was, @Borl
WL