You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复JSP页面中Checkmarx检测出的反射型XSS攻击?

解决JSP中${pageContext.request.contextPath}引发的反射型XSS告警问题

先修正你代码里的拼写错误:${pageContext.reqest.contextPath}里的reqest是笔误,应该写成request,这个错误可能会导致脚本路径加载失败。

接下来解决Checkmarx的XSS告警以及你用<c:url>未生效的问题:

方案1:正确使用<c:url>标签

你之前的写法多余手动拼接了contextPath,<c:url>标签本身会自动获取当前应用的contextPath,不需要额外拼接。直接这么写即可:

<script type="text/javascript" src="<c:url value="/js/viewone.js" />"></script>

该标签会自动生成带contextPath的完整路径,同时对URL进行安全编码,能有效规避XSS风险,消除Checkmarx的告警。

方案2:用JSTL函数转义contextPath(若方案1仍触发告警)

如果安全扫描仍有告警,可使用JSTL的fn:escapeXml函数对contextPath做XML转义,确保输出内容不会被解析为恶意脚本。
首先引入JSTL函数标签库:

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

之后修改script标签:

<script type="text/javascript" src="${fn:escapeXml(pageContext.request.contextPath)}/js/viewone.js"></script>

补充说明

pageContext.request.contextPath是服务器配置的应用路径,不属于用户可控输入,理论上不存在XSS风险,Checkmarx大概率是误报。但通过上述两种方法,既能满足安全扫描要求,也能保证代码的正确性。

内容的提问来源于stack exchange,提问作者ankur pramanik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 03:13:29