Den Unterschied verstehen: mysql_real_escape_string() vs. addslashes()
Während sowohl mysql_real_escape_string() als auch addslashes() zum Escape-Special verwendet werden Zeichen in Zeichenfolgen, um SQL-Injection-Angriffe zu verhindern, gibt es wesentliche Unterschiede zwischen den beiden Funktionen.
mysql_real_escape_string()
Diese Funktion wurde speziell für MySQL-Datenbanken entwickelt und fügt Schrägstriche hinzu die folgenden Zeichen:
addslashes()
Andererseits fügt addslashes() nur drei Zeichen Schrägstriche hinzu:
Sicherheitsimplikationen
Webanwendungen, die ausschließlich auf addslashes() angewiesen sind Die Eingabevalidierung ist möglicherweise immer noch anfällig für SQL-Injection-Angriffe. Dies liegt daran, dass addslashes() nicht vor allen Zeichen schützt, die bei einem Injection-Angriff verwendet werden können, nämlich:
Empfehlung
Für optimale Sicherheit wird empfohlen, die Verwendung von mysql_real_escape_string() und addslashes() zu vermeiden und stattdessen parametrisierte oder vorbereitete Abfragen zu verwenden Aussagen. Mit diesen Methoden können Sie Benutzereingaben an die Abfrage binden, ohne dass ein manuelles Escape erforderlich ist, was sicherer und effizienter ist.
Das obige ist der detaillierte Inhalt vonSind mysql_real_escape_string() und addslashes() gleichwertig bei der Verhinderung von SQL-Injection?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!