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中文网其他相关文章!