验证码扫描通过后。我在我的 jsp 中报告了针对 XSS 漏洞的 CWE ID 80 的 XSS 问题:
<%@ attribute name="styleId"%>
...
document.getElementById("${styleId}").value=""; (XSS here)
我不明白是哪里出了问题?我必须转义空字符串吗?或 styleId 或两者?我必须使用 EASPI.encodeForHTML 吗?
验证码扫描通过后。我在我的 jsp 中报告了针对 XSS 漏洞的 CWE ID 80 的 XSS 问题:
<%@ attribute name="styleId"%>
...
document.getElementById("${styleId}").value=""; (XSS here)
我不明白是哪里出了问题?我必须转义空字符串吗?或 styleId 或两者?我必须使用 EASPI.encodeForHTML 吗?
这里的问题是 styleId 可以引入破坏 j的 XSS。所以你必须用js的规则来转义styleId。所以我在util.tag中添加了我的自定义标签库
<function>
<name>escapeJavaScript</name>
<function-class>org.apache.commons.lang.StringEscapeUtils</function-class>
<function-signature>java.lang.String escapeJavaScript( java.lang.String )</function-signature>
</function>
然后
<%@ attribute name="styleId"%>
<%@ taglib prefix="util" uri="http://tags/util" %>
...
document.getElementById("${util:escapeJavaScript(styleId)").value="";
并且问题在下次扫描后得到解决。