Heim > Datenbank > MySQL-Tutorial > Ist „mysql_real_escape_string()' ein zuverlässiger Schutz gegen SQL-Injection in allen Zeichenkodierungen?

Ist „mysql_real_escape_string()' ein zuverlässiger Schutz gegen SQL-Injection in allen Zeichenkodierungen?

Mary-Kate Olsen
Freigeben: 2024-12-01 03:21:17
Original
160 Leute haben es durchsucht

Is `mysql_real_escape_string()` a Reliable Defense Against SQL Injection in All Character Encodings?

Ist mysql_real_escape_string() ein uneinnehmbarer Schutzschild gegen SQL-Injection?

Ein Abschnitt auf justinshattuck.com legt nahe, dass mysql_real_escape_string() gegen bestimmte fehlbar ist Asiatische Zeichenkodierungen. Insbesondere wird behauptet, dass die Codierung mysql_real_escape_string() mithilfe von BIG5 oder GBK umgeht, um gefährliche Zeichen in Abfragen einzuschleusen.

Ist diese Sicherheitslücke real?

Laut Stefan Esser, Die Antwort ist ein beunruhigendes Ja. Er behauptet, dass mysql_real_escape_string() ins Stocken gerät, wenn SET NAMES verwendet wird. Diese Methode ändert die Kodierung entsprechend den Anforderungen der Anwendung, ohne mysql_real_escape_string() zu informieren. Wenn eine Multibyte-Kodierung einen Backslash als zweites, drittes oder viertes Byte zulässt, kommt es daher zu Problemen. Mysql_real_escape_string() bemerkt diese Unregelmäßigkeit nicht und kann die Zeichen nicht korrekt maskieren.

Schutz Ihrer Website

Esser schlägt vor, dass UTF-8 eine sichere Codierung bleibt, aber UTF -8 ist nicht immer eine Option. Leider ist mysql_set_charset, die sicherere Alternative, nur in neueren PHP-Versionen verfügbar.

Das obige ist der detaillierte Inhalt vonIst „mysql_real_escape_string()' ein zuverlässiger Schutz gegen SQL-Injection in allen Zeichenkodierungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage