加强跨站点脚本:验证不佳

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 的 AntiSamyJava 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

【讨论】:

以上是关于加强跨站点脚本:验证不佳的主要内容,如果未能解决你的问题,请参考以下文章

经典 ASP :: 跨站点脚本 (XSS) 验证不良问题

在 Java Web 项目中显示 BLOB 对象,避免持久的跨站点脚本?

跨站点脚本帮助?

防止来自静态站点的跨站点脚本攻击

通过 URL 进行跨站点脚本

跨站点脚本攻击