【问题标题】:Veracode issue in JSPJSP 中的 Veracode 问题
【发布时间】:2014-12-26 03:12:47
【问题描述】:

我在下面的行中遇到验证码问题

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

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

【问题讨论】:

  • 你能标出哪个答案适合你吗?

标签: java html jsp veracode


【解决方案1】:

使用

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

而是转义XML

【讨论】:

    【解决方案2】:

    根据CWE

    软件从上游组件接收输入,但它确实 不中和或错误中和特殊字符,例如 "" 和 "&" 可以解释为 Web 脚本元素 当它们被发送到处理网页的下游组件时。

    你需要对html进行转义,如果你按照@jigar的建议使用jstl标签就可以了。

    关于 SO 的一些信息即将修复错误,

    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?

    【讨论】:

      【解决方案3】:

      在jsp中包含下面的jstl taglib

      <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
      

      并使用

      value="${fn:escapeXml(viewBean.getStudName())}"
      

      如果使用JSTL核心&lt;c:out/&gt;,可以使用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 的建议工作

          【讨论】:

            猜你喜欢
            • 2012-12-08
            • 2021-11-06
            • 2015-11-19
            • 2020-04-11
            • 1970-01-01
            • 2018-07-06
            • 1970-01-01
            • 1970-01-01
            • 2010-11-28
            相关资源
            最近更新 更多