如何从JSP中删除此XSS?

时间:2013-06-05 11:05:28

标签: jsp xss

我在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问题吗?

1 个答案:

答案 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}'/>"/>