2011-06-17 71 views
0

我已经阻止“脚本”这个词在我的服务器端php验证,并使用htmlentities和strip函数提交。这将保护所有JavaScript相关的攻击?轻松防止XSS或JavaScript相关的攻击

+1

如果你打算成为那么严厉,那么你最好还是将“iframe”加入黑名单。 – 2011-06-17 05:01:31

+0

谢谢,我也会试试 – ktm 2011-06-17 08:51:36

回答

1

不,有这么多的攻击媒介,因为JavaScript和标记被解释,浏览器喜欢自动修复用户的拼写错误,一些浏览器有不安全的专有支持JavaScript的CSS等,你可以阻止“脚本”,但是什么“scippt”(是的,有些浏览器会修复它)或“scrscriptipt”?当你的简单验证器删除一个脚本时,它实际上会离开另一个。它需要递归。还有onload,onblur,onmove等?有这么多的比较模糊的黑客: http://ha.ckers.org/xss.html

此外,只要能够得到一个链接或者更糟的图像标记将允许用户,让您的客户端和网页上其他人做任意GET请求,其中包括模仿管理员表单(如果您在输入中错误地允许GET和POST) - 为什么您认为Facebook会重写所有发布的链接以首先通过其代理。

对于一个人来说,自己跟踪是太多了。你应该看看这样一个开源的lib,像这样一个人在解决方案上一起工作,并在发现新的攻击时更新: http://htmlpurifier.org/(php)

我确定其他语言有相同的功能。