2010-08-10 76 views
5

有谁知道任何脚本注入扫描仪是能够检测,如果你的网站已经被破坏(已注入应该只是没有在那里的JavaScript即)的?网站脚本注入扫描

+0

什么不写后之前,您应该做的检查。 – 2010-08-10 11:28:23

回答

2

这是困难的:你需要测试你的应用程序的每个URL,并检查特定的模式出现在回复(这是很难有好的算法,可以理解这是好的和坏的JavaScript,或者你需要配置这个扫描器,这可能会很长很棘手)。

有一个称为mod security在服务器端的实时开源解决方案。它是一个Web应用程序防火墙:它可以检测请求和/或响应中的特定模式。它作为一个模块在Apache上工作。这主要是一种生产解决方案,并且在开发期间不检测注入。此外,您需要一些经验来调整它(与客户进行数据交换时的优点和错误),这可能会非常棘手,并且无法防范新的攻击或更智能的攻击(例如重新编码字符)。

顺便说一下,另一种解决方案是使用Content Security Policy,但它并不适用于所有浏览器(当然,目前没有人可以等待Firefox 4 ;-)。

1

你不能。 因为糟糕的脚本总是能够在您的扫描仪功能到达浏览器时重写/中和。
而您的服务器不再控制您网页中发生的事情。

有一种简单的方法可以保护您的网页免受注入:使用iframe指向服务器上不同子域或端口的所有不可信内容。
你得到的沙盒iframe和阻止访问父页面的ressources同源策略。

那么你可能要在I帧和主网页之间的安全通信。
如果您定位的是现代浏览器或移动设备,则可以使用window.postMessage发送字符串消息。
对于旧的浏览器,有一些技巧here is a blog post with a solution

这并不能防止跨站脚本,但是这是你可以在父页面一个秘密令牌解决的另一个问题。