werbeklaus: Was alles ersetzt mysql_real_escape_string()?

Beitrag lesen

Hallo,
Ich habe eine Frage zu Sicherheit mit Usereingaben in MySQL-Anfragen:

Ich habe schon mehrmals gelesen, dass man, wenn man Usereingaben in eine MySQL-Anfrage setzen will, mann immer die mysql_real_escape_string()-Funktion verwenden soll, um es sicher zu machen.

Ich habe die Funktion getestet und gemerkt, dass worte wie DELETE nicht "escaped" werden. Muss ich das danach auch noch prüfen? Oder ist es nicht möglich, als User Einen SELECT Befehl durch eine Eingabe bösartig zu machen?

Beispiel:
SELECT * FROM tabelle WHERE spalte='$Usereingabe'
Wenn der User nun etwas eingibt wie

"bla'; DELETE * FROM tabelle WHERE '1'='1"

Dann kommt raus

SELECT * FROM tabelle WHERE spalte='bla';
DELETE * FROM tabelle WHERE '1'='1'

Ist soas in der theorie möglich?