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

MySQL-Injection-Abfrage

Es wäre, es sei denn, Sie fügen einfache Anführungszeichen in den geposteten name ein , wodurch Sie aus den Anführungszeichen ausbrechen können. Beispiel:Posten Sie den Namen als:

' or 1 or '

Die WHERE-Klausel wird zu:

WHERE id = '' or 1 or '';

Dies würde aufgrund von or 1 alle Zeilen in der Tabelle abgleichen und abrufen Teil. Wie Sie sehen können, bricht es aus den Anführungszeichen aus, um etwas SQL einzufügen, und geht dann zurück in die Anführungszeichen, um die Abfrage gültig zu machen.

Nein, aber wenn es mit mysqli_multi_query ausgeführt wurde dann könnten Sie am Ende mehrere Abfragen hinzufügen.

Im Allgemeinen ja, aber eine vorbereitete Erklärung wäre besser. Unter Verwendung von Escaping, dem WHERE -Klausel würde (in meinem Beispiel oben):

werden
WHERE id = '\' or 1 or \'';

Dies ist nicht mehr anfällig, da die Anführungszeichen nicht ausgebrochen werden können und nur Zeilen entsprechen würden, wenn der name stimmt wörtlich mit ' or 1 or ' überein was offensichtlich unwahrscheinlich ist.