0

验证码扫描通过后。我在我的 jsp 中报告了针对 XSS 漏洞的 CWE ID 80 的 XSS 问题:

<%@ attribute name="styleId"%>
...
document.getElementById("${styleId}").value=""; (XSS here)

我不明白是哪里出了问题?我必须转义空字符串吗?或 styleId 或两者?我必须使用 EASPI.encodeForHTML 吗?

4

1 回答 1

0

这里的问题是 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=""; 

并且问题在下次扫描后得到解决。

于 2017-02-14T08:38:11.047 回答