Ins Input schreibe ich 1'"; $abfrage="DELETE FROM test"; //
...
Das wäre auch ein PHP Skript,d as du da absendest, so geht das nicht! Die Injection geschieht ja innerhalb einer Zeichenkette, die als Query asgeführt wird.
Eine Injection müsste so aussehen: 1'; DELETE FROM `test` WHERE '1'='1
Damit lautet die Abfrage:
Womit du zwei funktionsfähige Queries hast.
PHP lässt es aber nicht ganz so einfach zu:
Magic Quotes escapen einige Sonderzeichen. Diese Einstellung ist sehr oft aktiviert, fällt aber in der nächsten Version von PHP weg. Dann ist die Einstellung unveränderlich deaktiviert, d.h. keine maskierung mehr.
MySQL-Sicherheitsmechanismus: Nur eine Abfrage kann innerhalb von mysql_query() ausgeführt werden. Wiege dich da aber nicht in Sicherheit, das ist kein Schutz. Vor allem wenn die Magic Quotes bald deaktiviert werden.