XSS黑名单 - 有人知道合理的吗?
-
02-07-2019 - |
题
作为一个临时快速解决方案,可以在非常大的代码库中处理XSS漏洞的永久性修复时缓解主要风险,我正在寻找一个预先存在的XSS预防黑名单,它可以合理地防范XSS
最好是一组正则表达式。我知道有很多用于测试和烟雾测试的备忘单,我正在寻找的是用于阻止攻击的预先调整的regexp。
我完全清楚最好的方法是输出转义或者如果您需要用户使用某些标记来使用白名单。但是,随着代码库的大小,我们需要快速减少漏洞的直接影响,并在处理真正的解决方案时提高标准。
有人知道好的一套吗?
解决方案
其他提示
这是一个: http://ha.ckers.org/xss.html 但我不知道它是否完整。
CAL9000是另一个可以找到类似内容的列表。
不确定您是否使用PHP,但如果是这样,您应该查看 HTMLPurifer 。它使用起来非常简单;只需添加一个对您接受输入的purify()
方法的调用,或者输出它的位置。它基于白名单的方法阻止了我测试过的每一次XSS攻击。
ha.ckers.org/xss.html上的备忘单不完整。我的一位同事发现了一两个不在那里的人。 RSnake会列出每个攻击字符串过去的许多正则表达式过滤器。使用一些,你可以关闭足够的洞。
这将是一个很好的起点。如果不出意外,要知道你需要寻找什么样的东西。
使用它作为开始的地方,并确保您编写的脚本逃脱足够的角色,以使您的黑名单错过呈现的任何攻击都是良性的。如果没有浏览器呈现,那么xss注入有什么用呢?
实际上,逃避足够的正确角色大部分都在这里。将XSS注入到每个<!> lt;的脚本中是很困难的。进入<
并转义<!>进入"
。
如果你运行Apache,你可以使用 mod_security 来关闭一些漏洞。至少它会为您提供一个工具(控制台或普通日志文件) )监控交通并在为时已晚做出反应。另外, gotroot.com 对Web应用程序有一些有趣的规则。
然后,我真的不知道你要关闭什么样的洞。
你想要的是一个IDS(入侵检测系统)。如果您使用的是PHP,则可以使用 PHPIDS 。它由优秀的黑客社区维护和测试。他们一直在抛出各种各样的东西来改进过滤器,远远超出了Rsnake的原始列表。在某处还有一个.NET端口,不确定它是否仍在维护。