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):
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.