Hallo PHPler,
normalerweise wird ja u.a. mysql_real_escape_string verwendet um SQL-Injections zu verhindern.
Nun möchte ich aber alle Formulare und deren Felder mit RegExp prüfen bevor überhaupt irgendwas passiert.
Welche Zeichen sind für SQL-Injections bzw. Injections verwendbar? Also ich weiß, dass ' ein beliebter Kandidat ist. Doch wie sieht es mit [ oder mit " oder mit $ aus? Eigentlich geht es ja darum, den Code mit ' oder " zu unterbrechen. Da dürfte es ja nicht mehr Zeichen als die beiden geben, oder?
Wenn dem so ist, kann ich auf sämtliche Inputs, egal ob $_POST, $_GET, Cookie, etc. eigentlich die "Eingabe" per regexp prüfen, oder? Ich müsste also regexp negativieren (zum Beispiel für das Feld "Nachricht", da ja dort fast alle Zeichen zugelassen sind, bis auf die, wo zu Injections führen könnten. Wie ist dies machbar?
Ich werde die Eingaben natürlich nochmal per mysql_real_escape_string prüfen, bevor sie in die DB wandern, aber es wäre dann eigentlich nicht mehr nötig, richtig?
normalerweise wird ja u.a. mysql_real_escape_string verwendet um SQL-Injections zu verhindern.
Nun möchte ich aber alle Formulare und deren Felder mit RegExp prüfen bevor überhaupt irgendwas passiert.
Welche Zeichen sind für SQL-Injections bzw. Injections verwendbar? Also ich weiß, dass ' ein beliebter Kandidat ist. Doch wie sieht es mit [ oder mit " oder mit $ aus? Eigentlich geht es ja darum, den Code mit ' oder " zu unterbrechen. Da dürfte es ja nicht mehr Zeichen als die beiden geben, oder?
Wenn dem so ist, kann ich auf sämtliche Inputs, egal ob $_POST, $_GET, Cookie, etc. eigentlich die "Eingabe" per regexp prüfen, oder? Ich müsste also regexp negativieren (zum Beispiel für das Feld "Nachricht", da ja dort fast alle Zeichen zugelassen sind, bis auf die, wo zu Injections führen könnten. Wie ist dies machbar?
Ich werde die Eingaben natürlich nochmal per mysql_real_escape_string prüfen, bevor sie in die DB wandern, aber es wäre dann eigentlich nicht mehr nötig, richtig?