作为在非常大的代码库中对 XSS 漏洞进行永久修复时减轻主要风险的临时快速修复,我正在寻找一个预先存在的 XSS 预防黑名单,它可以合理地防止 XSS。
最好是一组正则表达式。我知道有很多用于测试和烟雾测试等的备忘单,我正在寻找的是用于阻止攻击的预先调整的正则表达式。
我完全知道最好的方法是输出转义,或者如果您需要用户的一些标记才能使用白名单。但是,随着代码库的大小,我们需要一些快速的东西来减少漏洞的直接影响并提高标准,同时致力于真正的解决方案。
有没有人知道一个好的集合?
作为在非常大的代码库中对 XSS 漏洞进行永久修复时减轻主要风险的临时快速修复,我正在寻找一个预先存在的 XSS 预防黑名单,它可以合理地防止 XSS。
最好是一组正则表达式。我知道有很多用于测试和烟雾测试等的备忘单,我正在寻找的是用于阻止攻击的预先调整的正则表达式。
我完全知道最好的方法是输出转义,或者如果您需要用户的一些标记才能使用白名单。但是,随着代码库的大小,我们需要一些快速的东西来减少漏洞的直接影响并提高标准,同时致力于真正的解决方案。
有没有人知道一个好的集合?
我意识到这可能不是您问题的直接答案,但处于类似情况的 ASP.NET 开发人员可能会发现这很有用:
该库与大多数编码库的不同之处在于它使用“包含原则”技术来提供针对 XSS 攻击的保护。这种方法的工作原理是首先定义一组有效或允许的字符,然后对该组之外的任何内容(无效字符或潜在攻击)进行编码。包含方法的原理提供了对XSS攻击的高度保护,适用于对安全性要求较高的Web应用程序。
这是一个:http ://ha.ckers.org/xss.html但我不知道它是否完整。
CAL9000 是另一个列表,您可以在其中找到类似的内容。
不确定您是否使用 PHP,但如果是,您应该查看HTMLPurifer。使用起来非常简单;purify()
只需添加对您接受输入或输出的方法的调用。它基于白名单的方法阻止了我测试过的所有 XSS 攻击。
ha.ckers.org/xss.html 上的备忘单并不完整。我的一位同事发现了一两个不在那里。RSnake 确实列出了每个攻击字符串通过的许多正则表达式过滤器。使用一些,您可能会关闭足够的孔。
这将是一个很好的起点。如果不出意外,要知道你需要寻找什么样的东西。
使用它作为开始的地方,并确保您编写的脚本转义了足够的字符,以使您的黑名单遗漏的任何攻击都呈现良性。如果没有浏览器渲染,xss 注入有什么好处?
实际上,在这里大部分情况下都可以逃避足够多的正确角色。将 XSS 注入将每个 < 转换为 a<
并将 " 转义为"
.
如果你运行 Apache,你可以使用mod_security来关闭一些漏洞。至少它会为您提供一个工具(控制台或普通日志文件)来监控流量并在为时已晚之前做出反应。此外,gotroot.com对 Web 应用程序有一些有趣的规则。
再说一次,我真的不知道你要关闭什么样的洞。
你想要的是一个IDS(入侵检测系统)。如果您使用的是 PHP,则有PHPIDS。它由一个优秀的黑客社区维护和测试。他们一直在投入各种各样的东西来改进过滤器,远远超出了 Rsnake 的原始列表。某处还有一个 .NET 端口,不确定它是否仍在维护。