Grundsätzlich jedes Mal, wenn Sie einige unsichere Daten verwenden (Benutzereingabe, Wert aus einer Datenbank, einer Datei oder einer externen Website, d. h. alle Daten, die Sie nicht zu 100 % sind sicherstellen, dass es sicher ist) in einer SQL-Abfrage, sollten Sie es mit mysql_real_escape_string . Beachten Sie, dass gemäß OWASP , diese Funktion ist nicht sicher, um dynamische Tabellennamen zu maskieren (aber dies ist weitaus seltener als das "einfache" Einfügen von Benutzereingaben).
Ich empfehle Ihnen, sich den gesamten OWASP-Artikel über SQL-Injection anzusehen , und auch, um den Rest der Website zu durchsuchen. Es ist eine hervorragende Informationsquelle zur Sicherheit in Webanwendungen.
IMO, die bevorzugte Methode zur Verhinderung von SQL-Injection ist die Verwendung von vorbereitete Erklärungen .
Bitte denken Sie daran, wenn Sie mysql_real_escape_string()
verwenden Es funktioniert nur, wenn es innerhalb einer Zeichenfolge verwendet wird, die durch Anführungszeichen getrennt ist. Verwenden Sie es niemals für Werte ohne Anführungszeichen. Dazu gehören numerische Werte; Überprüfen Sie stattdessen, ob die Benutzereingabe tatsächlich numerisch ist.