微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql_real_escape_string是否完全可以防止SQL注入?

如何解决mysql_real_escape_string是否完全可以防止SQL注入?

根据Stefan Esser的说法, MysqL_real_escape_string()[ SET NAMES使用时不安全] 。”

来自他的博客的解释:

SET NAMES通常用于将编码从认设置切换到应用程序需要的设置。这是MysqL_real_escape_string不知道的方式完成的。这意味着,如果您切换到允许反斜杠作为2nd 3rd 4th…字节的多字节编码,则会遇到麻烦,因为MysqL_real_escape_string无法正确转义。UTF-8是安全的…

更改编码的安全方法MysqL_set_charset,但这仅在新的PHP版本中可用

他确实提到UTF-8是安全的。

解决方法

http://www.justinshattuck.com/2007/01/18/mysql-injection-cheat-
sheet/?akst_action=share-
this上,有一节声称您可以使用某些亚洲字符编码绕过mysql_real_escape_string

用BIG5或GBK绕过mysql_real_escape_string()

“注入线”
に关する追加情报:

以上字符是中国Big5

这是真的吗?如果是的话,如果您无法访问准备好的陈述,那么如何保护您的网站呢?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。