Heim >Backend-Entwicklung >PHP-Tutorial >Ist mysql_real_escape_string() immer noch ein Schutz gegen SQL-Injection?
Ist mysql_real_escape_string() anfällig für SQL-Injection?
Es wurden Bedenken hinsichtlich der Wirksamkeit von mysql_real_escape_string() bei der Verhinderung von SQL-Injection geäußert. Einige ältere Artikel deuten darauf hin, dass diese Funktion möglicherweise Mängel aufweist.
Kann mysql_real_escape_string() sicher verwendet werden?
Die Antwort auf diese Frage liegt im Verständnis der Einschränkungen der Funktion. Gemäß der MySQL-C-API-Dokumentation:
If you need to change the character set of the connection, you should use the mysql_set_character_set() function rather than executing a SET NAMES (or SET CHARACTER SET) statement. mysql_set_character_set() works like SET NAMES but also affects the character set used by mysql_real_escape_string(), which SET NAMES does not.
Um maximale Sicherheit zu gewährleisten, ist es daher wichtig, mysql_set_charset() zum Ändern der Codierung zu verwenden, anstatt SET NAMES/SET CHARACTER SET. Dies liegt daran, dass mysql_set_charset() mit der Funktion mysql_set_character_set() von MySQL übereinstimmt, die sich auf den von mysql_real_escape_string() verwendeten Zeichensatz auswirkt.
Durch Befolgen dieser Richtlinien können Sie mysql_real_escape_string() effektiv verwenden, um Ihre Abfragen vor SQL-Injection zu schützen .
Das obige ist der detaillierte Inhalt vonIst mysql_real_escape_string() immer noch ein Schutz gegen SQL-Injection?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!