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 "";
}

ファイルのveracodeスキャンを実行すると、次の行に XSS エラーが表示されていることがわかりました。

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

<%=beanUseVec.getValue("transCurrency")%>それは XSS リスクであると指摘しています。通常、JSP の他の XSS リスクには jstl タグを使用しますが、これは POJO 関数ではなく、文字列を返す関数であり、POJO 関数の変数を呼び出す必要があるためc:out、ここでは使用できないと思います。getValue()c:out

誰かがこの 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 に答える