我问自己关于使用php函数htmlentities()对抗XSS攻击的安全性,以及htmlspecialchars等相关函数的安全性。
非常感谢:)。
答案 0 :(得分:8)
你需要明确指定正确的编码(例如:utf-8),Chris有一篇关于如何在没有适当编码的情况下调用htmlentities来注入代码的帖子。
答案 1 :(得分:4)
它不是防弹,它永远不会为您节省100%。您必须记住,在安全性方面,开发人员对此负责。语言确实提供了大量的安全功能,因此开发人员如何使用白名单方法或黑名单方法保护他们的网站。如果htmlentities是全部,那么像codeigniter,kohana等框架就不会有他们自己很好的安全功能。
最重要的是对来自用户的任何输入进行清理和过滤。
答案 2 :(得分:0)
不,htmlspecialchars
和htmlentities
等功能无法抵御所有跨站点脚本的情况。
这些功能无效的案例有:
尤其是后一种原因经常被遗漏。 OWASP’s XSS Prevention Cheat Sheet中有许多示例可以在HTML文档中进行注入。但并非所有HTML特殊字符都需要注入和执行JavaScript代码。