避免javascript执行的最佳方法

时间:2012-03-30 12:15:14

标签: php javascript security

我在我的应用程序中使用PHP和Zend Framework。用户可以输入一些HTML,管理员可以看到这个HTML。我想避免XSS注射。我应该按原样显示所有HTML,除了任何javascript。我尝试删除script代码但不安全。用户可以将javascript添加到onclick或其他活动。

感谢。

2 个答案:

答案 0 :(得分:4)

如果您希望从XSS清理这样的用户输入,我会考虑使用HTML purifier

仅删除脚本标记是不够的,您错过了人们可以添加的任何内联的JavaScript内容。

HTML purifier但是会​​为您删除所有内容。从他们的网站:

  

HTML Purifier是一个符合标准的HTML过滤器库   PHP。 HTML Purifier不仅会删除所有恶意代码(更好   被称为XSS)经过全面审核,安全而宽松   白名单,它还将确保您的文件是标准   合规,只有通过全面的知识才能实现   W3C的规格。

答案 1 :(得分:1)

我认为您最好的选择是手动覆盖所有漏洞。

首先删除脚本标记,然后在on事件上运行正则表达式(onclick,onhover ...)并删除它们。还有更多的道路......

CodeIgniter(可能还有其他框架)有一个函数xss_clean(),你可能会看一下它看看它们做了什么。