我在下面的行中获得了veracode问题
<input type = "hidden" name = "studentName" value = "<%=viewBean.getStudName()%>">
问题出在<%=viewBean.getStudName()%>
在这里,报告的问题是“网页中与脚本相关的HTML标签的不正当中和(基本XSS)。我已经尝试了cwe.mitre.org中给出的修复,但我无法正确应用它。任何人都可以帮忙解决这个问题。克服这个问题?
答案 0 :(得分:1)
使用
<c:out value=${viewBean.studName}/>
而是逃脱XML
答案 1 :(得分:0)
根据CWE
,
软件从上游组件接收输入,但确实如此 不中和或不正确地中和特殊字符,如 “&lt;”,“&gt;”和“&amp;”这可以解释为Web脚本元素 当它们被发送到处理网页的下游组件时。
如果您使用@jigar建议的jstl
标记,则需要转义html。
有关修复错误的一些信息,
答案 2 :(得分:0)
“&GT;
像这样使用。它现在正在工作。谢谢@Jigar Joshi和@ San Krish
答案 3 :(得分:0)
在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 :(得分:0)
您需要在打印值时使用html编码。所以它给出了错误。所以应该编码为 value =“&lt;%= ESAPI.encoder()。encodeForHtml(viewBean.getStudName())%&gt;”&gt;
您需要导入org.owasp.esapi.ESAPI和org.owasp.esapi.Encoder。
这肯定会重新解决问题..