addslashes() dient zwar dazu, Sonderzeichen zu maskieren, bietet jedoch keinen umfassenden Schutz davor SQL-Injection-Angriffe. Im Gegensatz dazu bietet mysql_real_escape_string() eine erhöhte Sicherheit, indem es ein breiteres Spektrum problematischer Zeichen anspricht.
Mysql_real_escape_string() fügt insbesondere Schrägstriche zu den folgenden Zeichen hinzu:
\x00, \n, \r, \, ', " and \x1a.
Dieser erweiterte Zeichensatz gewährleistet dass nicht nur einfache und doppelte Anführungszeichen maskiert werden, wie bei addslashes(), sondern auch andere potenziell schädliche Zeichen neutralisiert werden.
Um diesen Unterschied zu veranschaulichen, betrachten Sie das folgende Beispiel:
$string = "' OR 1=1"; $addslashes_example = addslashes($string); // Escapes only single and double quotes $mysql_rescape_example = mysql_real_escape_string($string); // Escapes single, double, and \x1a characters echo $addslashes_example; // Outputs: \' OR 1=1 echo $mysql_rescape_example; // Outputs: \' OR 1=1\'
Wie gezeigt, bietet mysql_real_escape_string() einen robusteren Schutz, indem es die Ausführung eines manipulierten SQL-Injection-Angriffs verhindert, während addslashes() das System angreifbar macht. Es ist wichtig anzuerkennen, dass sowohl mysql_real_escape_string() als auch addslashes() veraltet sind und nicht mehr zur Verwendung empfohlen werden. Stattdessen sollten parametrisierte Abfragen für sichere und effiziente Datenbankinteraktionen eingesetzt werden.
Das obige ist der detaillierte Inhalt vonWie übertrifft mysql_real_escape_string() addslashes() bei der Bekämpfung von SQL-Injection?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!