2

作为在非常大的代码库中对 XSS 漏洞进行永久修复时减轻主要风险的临时快速修复,我正在寻找一个预先存在的 XSS 预防黑名单,它可以合理地防止 XSS。

最好是一组正则表达式。我知道有很多用于测试和烟雾测试等的备忘单,我正在寻找的是用于阻止攻击的预先调整的正则表达式。

我完全知道最好的方法是输出转义,或者如果您需要用户的一些标记才能使用白名单。但是,随着代码库的大小,我们需要一些快速的东西来减少漏洞的直接影响并提高标准,同时致力于真正的解决方案。

有没有人知道一个好的集合?

4

6 回答 6

3

我意识到这可能不是您问题的直接答案,但处于类似情况的 ASP.NET 开发人员可能会发现这很有用:

微软反跨站脚本库 V1.5

该库与大多数编码库的不同之处在于它使用“包含原则”技术来提供针对 XSS 攻击的保护。这种方法的工作原理是首先定义一组有效或允许的字符,然后对该组之外的任何内容(无效字符或潜在攻击)进行编码。包含方法的原理提供了对XSS攻击的高度保护,适用于对安全性要求较高的Web应用程序。

于 2008-09-23T10:19:25.267 回答
2

这是一个:http ://ha.ckers.org/xss.html但我不知道它是否完整。

CAL9000 是另一个列表,您可以在其中找到类似的内容。

于 2008-09-23T10:18:53.240 回答
2

不确定您是否使用 PHP,但如果是,您应该查看HTMLPurifer。使用起来非常简单;purify()只需添加对您接受输入或输出的方法的调用。它基于白名单的方法阻止了我测试过的所有 XSS 攻击。

于 2008-09-23T16:18:24.703 回答
1

ha.ckers.org/xss.html 上的备忘单并不完整。我的一位同事发现了一两个不在那里。RSnake 确实列出了每个攻击字符串通过的许多正则表达式过滤器。使用一些,您可能会关闭足够的孔。

这将是一个很好的起点。如果不出意外,要知道你需要寻找什么样的东西。

使用它作为开始的地方,并确保您编写的脚本转义了足够的字符,以使您的黑名单遗漏的任何攻击都呈现良性。如果没有浏览器渲染,xss 注入有什么好处?

实际上,在这里大部分情况下都可以逃避足够多的正确角色。将 XSS 注入将每个 < 转换为 a&lt;并将 " 转义为&quot;.

于 2008-09-23T14:16:53.527 回答
0

如果你运行 Apache,你可以使用mod_security来关闭一些漏洞。至少它会为您提供一个工具(控制台或普通日志文件)来监控流量并在为时已晚之前做出反应。此外,gotroot.com对 Web 应用程序有一些有趣的规则。

再说一次,我真的不知道你要关闭什么样的洞。

于 2008-09-23T10:19:41.023 回答
0

你想要的是一个IDS(入侵检测系统)。如果您使用的是 PHP,则有PHPIDS。它由一个优秀的黑客社区维护和测试。他们一直在投入各种各样的东西来改进过滤器,远远超出了 Rsnake 的原始列表。某处还有一个 .NET 端口,不确定它是否仍在维护。

于 2008-09-24T06:06:48.813 回答