栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

捕获XSS(跨站点脚本)攻击的最佳正则表达式(在Java中)?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

捕获XSS(跨站点脚本)攻击的最佳正则表达式(在Java中)?

不要使用正则表达式执行此操作。请记住,您并不是仅仅针对有效的HTML进行保护;您可以防止Web浏览器创建的DOM。可以诱使浏览器很容易地从无效的HTML生成有效的DOM。

例如,请参阅此混淆的XSS攻击列表。您是否准备量身定制正则表达式以防止在IE6 / 7/8上对Yahoo和Hotmail进行这种现实世界的攻击?

<HTML><BODY><?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time"><?import namespace="t" implementation="#default#time2"><t:set attributeName="innerHTML" to="XSS&lt;script DEFER&gt;alert(&quot;XSS&quot;)&lt;/script&gt;"></BODY></HTML>

如何在IE6上进行这种攻击?

<TABLE BACKGROUND="javascript:alert('XSS')">

该网站未列出的攻击如何?Jeff的方法存在的问题是,它不是声称的白名单。正如该页面上的某人熟练地指出:

它的问题是html必须干净。在某些情况下,您可以传入被黑的html,但它不会与之匹配,在这种情况下,它将返回被黑的html字符串,因为它不匹配任何要替换的内容。这不是严格的白名单。

我建议使用像AntiSamy这样的专用工具。它实际上是通过解析HTML,然后遍历DOM并删除所有不在可配置白名单中的内容来工作的。主要区别在于可以正常处理格式错误的HTML。

最好的部分是,它实际上对上述站点上的所有XSS攻击进行了单元测试。此外,比此API调用更容易的是:

public String toSafeHtml(String html) throws ScanException, PolicyException {    Policy policy = Policy.getInstance(POLICY_FILE);    AntiSamy antiSamy = new AntiSamy();    CleanResults cleanResults = antiSamy.scan(html, policy);    return cleanResults.getCleanHTML().trim();}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/401907.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号