Ich habe jetzt öfters gelesen das Magic Quotes keinen ausreichenden Schutz gegen SQL-Injections bieten bzw. unsicher sind. Aber ich verstehe einfach nicht warum, schliesslich macht mysql_real_escape_string() auch nichts anderes?
Als Beispiel:
wenn der Benutzer jetzt die folgende Injektion macht:
würde die Query folgendermaßen aussehen:
Das Backslash wird ohne Probleme mit Magic Quotes hinzugefügt und die potenzielle Injektion eliminiert. Wie kann es trotzdem möglich sein, dass die Magic Quotes gebypassed werden können?
Als Beispiel:
PHP-Code:
SELECT * FROM tablename
WHERE email='$x';
PHP-Code:
$x(Hochkomma) OR 1=1 --
PHP-Code:
SELECT * FROM tablename
WHERE email='\' OR 1=1 --';
Kommentar