Eingabefelder vor Codeeinspeisung schützen

schnell mal unter http://de.php.net/mysql_escape_string geguckt.

Im Kommentar unten drunten hab ich folgendes gefunden:

The php mysql_db_query function allow only one querry at a time, thus it is not possible to execute more than one query by passing ";" in some form field.

Des weiteren sehe ich keinen Unterschied zur Funktion addslashes();

es sollte auch noch gesagt werden, dass solche maskierten Eingaben bei der Ausgabe mit der Funktion stripslashes() bearbeitet werden sollte, sonst wirds schwer einen Text mit vielen Zitaten zu lesen ;)

Korrigiert mich.

Ciao, Jörg
 
hier mal eine tolle antwort von meinem bekannten:
------------------------------------
Es reicht ausdrücklich nicht aus, die Eingaben nach SQL-Schlüsselwörtern zu Filtern! Ein Angreifer könnte nämlich die Filterung durch mehrere Tricks aushebeln:
-Sonderzeichen
-Alternative Darstellung des Textes (etwa im Unicode Format).
Man kann Schlüsselwörter nicht nur so schreiben: "ALTER"
sondern z.B. auch so: "UNICODE UTF-16 Transform: \x0041\x004c\x0054\x0045\x0052". Viel Spaß beim Filtern ;-)
-Bugs in Deiner Filterroutine ausnutzen
------------------------------------
und da hat er gewaltig recht! werde also nun mysql_escape_string nehmen.

gut das das wort alter und nicht alder heisst sonst könnte man den ganzen türkischen wortschatz nicht mehr nutzen. :-)

Also danke für die Antworten. Thema kann geschlosen werden.
 
Zurück