JSP 中的 Veracode 问题
Posted
技术标签:
【中文标题】JSP 中的 Veracode 问题【英文标题】:Veracode issue in JSP 【发布时间】:2014-12-26 03:12:47 【问题描述】:我在下面的行中遇到验证码问题
<input type = "hidden" name = "studentName" value = "<%=viewBean.getStudName()%>">
问题出在<%=viewBean.getStudName()%>
在这里,报告的问题是“网页中与脚本相关的 html 标记的不正确中和(基本 XSS)。我已经尝试了 cwe.mitre.org 中给出的修复,但我无法正确应用它。任何人都可以帮助解决这个问题吗?解决问题?
【问题讨论】:
你能标出哪个答案适合你吗? 【参考方案1】:使用
<c:out value=$viewBean.studName/>
而是转义XML
【讨论】:
【参考方案2】:根据CWE
,
软件从上游组件接收输入,但它确实 不中和或错误中和特殊字符,例如 "" 和 "&" 可以解释为 Web 脚本元素 当它们被发送到处理网页的下游组件时。
你需要对html进行转义,如果你按照@jigar的建议使用jstl
标签就可以了。
关于 SO 的一些信息即将修复错误,
-
Veracode - Improper Neutralization of Script-Related HTML tags in a Web Page (Basic XSS)
How to fix Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS) with error message?
【讨论】:
【参考方案3】:在jsp中包含下面的jstl taglib
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
并使用
value="$fn:escapeXml(viewBean.getStudName())"
如果使用JSTL核心<c:out/>
,可以使用escapeXml="true"
来避免XSS。
【讨论】:
【参考方案4】:您需要在打印值时使用 html 编码。所以它给出了错误。所以它应该被编码为 value = "">
您需要导入 org.owasp.esapi.ESAPI 和 org.owasp.esapi.Encoder。
这肯定会解决问题..
【讨论】:
【参考方案5】:<input type = "hidden" name = "studentName" value = "<%=StringEscapeUtils.escapeHtml(viewBean.getStudName())%>">
这样使用。它现在按照@Jigar Joshi 和@San Krish 的建议工作
【讨论】:
以上是关于JSP 中的 Veracode 问题的主要内容,如果未能解决你的问题,请参考以下文章
使用veracode时com.google.android.gms.analytics中的“熵不足(CWE ID 331)”
在我将解决方案作为 OWAPS 和 Roslyn 安全卫士的建议应用后,Veracode 仍然报告操作系统命令注入问题
java中动态创建的order by子句在Veracode扫描中显示为sql注入问题