Heim >Backend-Entwicklung >PHP-Tutorial >Ist „mysql_real_escape_string()' wirklich sicher: Können asiatische Zeichenkodierungen seinen Schutz umgehen?

Ist „mysql_real_escape_string()' wirklich sicher: Können asiatische Zeichenkodierungen seinen Schutz umgehen?

Susan Sarandon
Susan SarandonOriginal
2024-10-26 18:17:02926Durchsuche

Is `mysql_real_escape_string()` Truly Safe: Can Asian Character Encodings Bypass its Protection?

Schützt mysql_real_escape_string() vollständig vor SQL-Injection?

Kürzlich wurde behauptet, dass mysql_real_escape_string() mit bestimmten asiatischen Zeichenkodierungen umgangen werden kann , insbesondere Big5 und GBK. Ist diese Behauptung gültig und wenn ja, wie können Sie Ihre Website schützen, ohne auf vorbereitete Aussagen zurückzugreifen?

Die Sicherheitslücke

Laut Stefan Esser, mysql_real_escape_string() stellt eine Sicherheitslücke dar, wenn der Befehl SET NAMES verwendet wird. Dieser Befehl ändert die Zeichenkodierung, wodurch mysql_real_escape_string() bestimmte Multibyte-Kodierungen, die Backslashes als zusätzliche Bytes verwenden, nicht berücksichtigt. Dieses falsche Escapezeichen kann die Sicherheit Ihrer Website gefährden.

Sicherheitsmaßnahmen

Während die UTF-8-Kodierung nicht anfällig für diesen Exploit ist, ist es wichtig, mysql_set_charset zu verwenden, um Kodierungen sicher zu ändern . Diese Funktion ist jedoch nur in neueren PHP-Versionen verfügbar. Wenn Sie keine vorbereiteten Anweisungen oder mysql_set_charset verwenden können, müssen Sie möglicherweise nach alternativen Methoden suchen, um Ihre Website vor SQL-Injection-Angriffen zu schützen.

Das obige ist der detaillierte Inhalt vonIst „mysql_real_escape_string()' wirklich sicher: Können asiatische Zeichenkodierungen seinen Schutz umgehen?. 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