用Java处理跨站点脚本(XSS)

跨站点脚本(XSS)是Web应用程序中的一种安全漏洞,攻击者可以通过某种类型的用户输入(例如输入框,URL参数,HTML标头等)注入恶意脚本,
这一点很重要,防止XSS攻击对维护很重要。 Web应用程序信息的机密性,完整性和可用性。反映并存储了两个主要的跨站点脚本缺陷:

反映的XSS

来自用户请求的恶意内容会显示给用户,或者在服务器响应后将其写入页面。例如,在下一个屏幕截图中,信用卡号字段很容易受到攻击。在数字之后,有一个脚本要插入:

1个<script src="data:text/javascript;base64,YWxlcnQoJ215IGphdmFzY3JpcHQgaGVyZScp" defer=""></script>
用Java处理跨站点脚本(XSS)

单击购买按钮后,将显示警报窗口:

用Java处理跨站点脚本(XSS)

Java漏洞的补丁

当您有一个String RequestParam时,请避免在不进行消毒的情况下对其进行处理:

用Java处理跨站点脚本(XSS)

该 OWASP的Java编码器 有一个名为forHtml用于这一目的的方法:

用Java处理跨站点脚本(XSS)

储存的XSS

有效负载被保留。例如,在下一个屏幕截图中,您可以看到脚本已添加为注释。加载页面后,将执行脚本并将其作为代码的一部分进行打印。

用Java处理跨站点脚本(XSS)

Java漏洞的补丁

解决方案是在处理RequestBody之前先对其进行清理:

用Java处理跨站点脚本(XSS)

现在,注释将打印为文本,但不会执行:

用Java处理跨站点脚本(XSS)
在我们的JCG计划的合作伙伴Eidher Julian的允许下,在Java Code Geeks上发布。请参阅此处的原始文章:Java中的跨站点脚本处理(XSS)处理
Java Code Geeks贡献者表达了自己的见解。

原创文章,作者:冰封一夏,如若转载,请注明出处:http://www.nncjzx.com/226.html

关注本站公众号获取更多实时内容

本站微信公众号:二线码农