XSS黑名单 - 有人知道合理的吗?

时间:2008-09-23 10:14:12

标签: javascript html security xss

作为一个临时快速解决方案,可以在非常大的代码库中处理XSS漏洞的永久性修复时缓解主要风险,我正在寻找一个预先存在的XSS预防黑名单,它可以合理地防范XSS

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

我完全清楚最好的方法是output escaping,或者如果您需要用户使用某些标记来使用白名单。但是,随着代码库的大小,我们需要快速减少漏洞的直接影响,并在处理真正的解决方案时提高标准。

有人知道好的一套吗?

6 个答案:

答案 0 :(得分:3)

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

Microsoft Anti-Cross Site Scripting Library V1.5

  

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

答案 1 :(得分:2)

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

CAL9000是另一个可以找到类似内容的列表。

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

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

使用它作为开始的地方,并确保您编写的脚本逃脱足够的角色,以使您的黑名单错过呈现的任何攻击都是良性的。如果没有浏览器呈现,那么xss注入有什么用呢?

实际上,逃避足够的正确角色大部分都在这里。很难将XSS注入到一个脚本中,这个脚本会将每个<进入<并转入“"

答案 4 :(得分:0)

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

然后,我真的不知道你要关闭什么样的洞。

答案 5 :(得分:0)

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