Heim  >  Artikel  >  Backend-Entwicklung  >  Wie übertrifft mysql_real_escape_string() addslashes() bei der Bekämpfung von SQL-Injection?

Wie übertrifft mysql_real_escape_string() addslashes() bei der Bekämpfung von SQL-Injection?

Barbara Streisand
Barbara StreisandOriginal
2024-10-21 13:20:31905Durchsuche

How Does mysql_real_escape_string() Surpass addslashes() in Combatting SQL Injection?

Enthüllung der besonderen Merkmale von mysql_real_escape_string() über addslashes() hinaus

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn