1

我在我的 JSP 中定义了一个输入标记:

<input type="text" name="transCurrency" maxlength="10" size="10" value="<%=beanUseVec.getValue("transCurrency")%>" />   

相应的函数getValue()定义beanUseVec.java为:

public String getValue(String vectK)
{
    if(uEnVec != null && uEnVec.containsKey(vectK))
    return (String)uEnVec.get(vectK);
    else
    return "";
}

当我对我的文件进行验证码扫描时,我发现 XSS 错误显示在该行中:

<input type="text" name="transCurrency" maxlength="10" size="10" value="<%=beanUseVec.getValue("transCurrency")%>" />

它指出这<%=beanUseVec.getValue("transCurrency")%>是一个 XSS 风险。通常对于 JSP 中的其他 XSS 风险,我使用 jstlc:out标签,我认为这里不能使用,因为getValue()它不是 POJO 函数,它只是一个返回字符串c:out的函数,需要调用 POJO 函数的变量。

有人可以建议任何其他方法来摆脱这个 XSS 问题吗?

4

1 回答 1

1

您可以将输出保存到request变量并使用c:out标签显示它

<%
String output = beanUseVec.getValue("transCurrency");
request.setAttribute("output",output);
%>

<input type="text" name="transCurrency" maxlength="10" size="10" value="<c:out value='${output}'/>"/>
于 2013-06-05T11:17:36.057 回答