加强跨站点脚本:验证不佳
Posted
技术标签:
【中文标题】加强跨站点脚本:验证不佳【英文标题】:Fortify Cross Site Scripting: Poor Validation 【发布时间】:2013-01-30 23:39:49 【问题描述】:我已使用 JSTL 标签修复了 Fortify 在我的 JSP 上报告的 XSS 漏洞问题。但是在使用后,虽然 XSS 漏洞问题得到了解决,但它导致了一个新问题,即“XSS:验证不良”。我可以实施哪些其他可能的解决方案来解决这个糟糕的验证问题?
Fortify 建议 html/ XML/ URL 编码不是一个好的做法,因为代码会在运行时被解码,这仍然可能导致 XSS 攻击。
我正在使用注入 spring 的 struts 框架。我有用户可以提供输入的字段以及从数据库中读取的字段。我已经搜索了可能的解决方案,但还没有找到任何解决方案。
谢谢, 迪娜
【问题讨论】:
使用 OWASP 编码器 Jar。 Fortify 解决了我的跨站点脚本问题。从以下 URL 下载 jar。第二个选项卡有示例。 owasp.org/index.php/OWASP_Java_Encoder_Project 【参考方案1】:根据您输出数据的位置使用正确的编码。可以在OWASP XSS Prevention Cheat Sheet 找到详细信息 - 以及有关 OWASP 的 AntiSamy
和 Java HTML Sanitizer
的信息。
此外,可以在适当的情况下使用white listing。
【讨论】:
【参考方案2】:使用 OWASP 编码器 Jar。 Fortify 解决了我的跨站脚本问题。
从以下 URL 下载 jar。第二个选项卡有示例。 https://www.owasp.org/index.php/OWASP_Java_Encoder_Project
片段:
<body><%= Encode.forHtml(UNTRUSTED) %></body>
http://owasp.github.io/owasp-java-encoder/encoder/apidocs/index.html?index-all.html
【讨论】:
以上是关于加强跨站点脚本:验证不佳的主要内容,如果未能解决你的问题,请参考以下文章