Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum gelingt diese SQL-Injection, obwohl die SQL-Anweisung einen Syntaxfehler erzeugt?

Die Abfragen werden trotzdem ausgeführt, da mysql ; verwendet um jede Abfrage zu begrenzen, und es wird die Abfragen auch dann fortsetzen, wenn ein Syntaxfehler auftritt, wenn Sie dies zulassen. Beim Ausführen der Abfragen in SequelPro erhalte ich eine Meldung über den Syntaxfehler und werde gefragt, ob ich mit der Ausführung aller Abfragen fortfahren oder aufhören möchte. Wenn Sie sie jedoch direkt in der MySQL-Befehlszeile ausführen, laufen die Abfragen weiter und MySQL gibt nur eine Fehlermeldung aus und fährt wie erwartet mit der nächsten Abfrage fort (das Gleiche passiert mit dem PHP-Code).