我在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 "";
}
当我对我的文件进行veracode扫描时,发现XSS错误显示在该行中:
<input type="text" name="transCurrency" maxlength="10" size="10" value="<%=beanUseVec.getValue("transCurrency")%>" />
它指出<%=beanUseVec.getValue("transCurrency")%>
是一个XSS风险。通常对于JSP中的其他XSS风险,我使用jstl c:out
标记,我认为这里不能使用,因为getValue()
不是POJO函数,它只是一个返回字符串的函数{{1需要调用POJO函数的变量。
有人可以提出任何其他方法来摆脱这个XSS问题吗?
答案 0 :(得分: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}'/>"/>