mysql_real_escape_string() 是否容易受到 SQL 注入攻擊?
人們對 mysql_real_escape_string() 在防止 SQL 注入方面的有效性提出了擔憂。一些較舊的文章表明該函數可能有缺陷。
mysql_real_escape_string() 可以安全使用嗎?
這個問題的答案在於了解函數的限制。根據 MySQL C API 文件:
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.
因此,為了確保最大的安全性,使用 mysql_set_charset() 來更改編碼至關重要,而不是 SET NAMES/SET CHARACTER SET。這是因為 mysql_set_charset() 與 MySQL 的 mysql_set_character_set() 函數一致,這會影響 mysql_real_escape_string() 使用的字元集。
透過遵循這些準則,您可以有效地使用 mysql_real_escape_string() 來保護您的查詢免受 SQL 注入.
以上是mysql_real_escape_string() 仍然可以防止 SQL 注入嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!