JSP中的Veracode问题

时间:2014-10-30 07:00:12

标签: java html jsp veracode

我在下面的行中获得了veracode问题

<input type = "hidden" name = "studentName" value = "<%=viewBean.getStudName()%>">

问题出在<%=viewBean.getStudName()%> 在这里,报告的问题是“网页中与脚本相关的HTML标签的不正当中和(基本XSS)。我已经尝试了cwe.mitre.org中给出的修复,但我无法正确应用它。任何人都可以帮忙解决这个问题。克服这个问题?

5 个答案:

答案 0 :(得分:1)

使用

<c:out value=${viewBean.studName}/>

而是逃脱XML

答案 1 :(得分:0)

根据CWE

  

软件从上游组件接收输入,但确实如此   不中和或不正确地中和特殊字符,如   “&lt;”,“&gt;”和“&amp;”这可以解释为Web脚本元素   当它们被发送到处理网页的下游组件时。

如果您使用@jigar建议的jstl标记,则需要转义html。

有关修复错误的一些信息,

  1. Veracode - Improper Neutralization of Script-Related HTML tags in a Web Page (Basic XSS)
  2. How to fix Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS) with error message?

答案 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。

这肯定会重新解决问题..