繁体   English   中英

Checkmarx 在 JSP 文件中反映 Xss

[英]Checkmarx Reflected Xss in JSP file

在 Spring 引导项目中,我正在使用 checkmarx,当 checkmarx 扫描我的项目时 - 它表明在我的项目中,我在多选标记的 JSP 文件中反映了 xss 问题

<select name="${c}" id="${c}" data-parent="${param.c}" data-cascaded="true" multiple="multiple" class="select-dropdown-menu">
                    <c:forEach items="${cd.get(c)}" var="value">
                        // My Rest of the code
                    </c:forEach>
</select>

并且它还在下面的行中显示了反映的 XSS 问题

<script>utility('${param.c}')</script>

如何解决这个问题?

此 JSP 代码中可能存在漏洞,因为它似乎在data-parentutility属性中使用用户提供的输入(存储在param.c变量中),而没有先对其进行正确清理。 这可能允许攻击者将恶意代码注入页面,或以意想不到的方式操纵utility function 的行为。 此外,从提供的代码中不清楚${cd.get(c)}${c}变量来自何处以及它们是否经过适当清理。

清理用户提供的输入对于防止任何类型的注入攻击(包括 XSS)至关重要。 有几种方法可以清理 JSP 中的输入:

  1. 输入验证:这涉及根据一组预定义的规则或约束检查用户提供的输入。 这可以使用正则表达式或根据允许字符列表检查输入来完成。
  2. Escaping :这涉及将输入中的任何潜在危险字符转换为相应的 HTML 实体,以便它们不会被浏览器解释为代码。
  3. 编码:这涉及将输入转换为可在应用程序中安全使用的不同格式。 这可以使用 Base64 编码等函数来完成。
  4. 使用库:有几个可用的库可以帮助进行输入验证和清理,例如 Apache Commons Validator、JSoup 和 OWASP Java Encoder Project。

重要的是要注意,具体的清理方法将取决于使用用户提供的输入的上下文及其包含的数据类型。 最好查阅 OWASP 十大漏洞和 OWASP 指南以获取更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM