私の例では、f:selectItems属性を持つselectOneMenuがあります。セレクトアイテムは、このように私の豆から解決されています表示されるオブジェクトは、 "属性を持つ単純なオブジェクトですJSF SelectItemsとエスケープ(xss)
public List<MyObject> getSelectItems() {
List<MyObject> list = new LinkedList<MyObject>();
MyObject obj = new MyObject("Peter");
list.add(obj);
return list;
}
:
<h:selectOneMenu value="#{bean.value}">
<f:selectItems value="#{bean.selectItems}" var="obj" itemValue="#{obj}" itemLabel="#{obj.name}"/>
</h:selectOneMenu>
方法getSelectItems()私の豆のそれのように見えます名"。
この時点まで特別なことはありません。しかし、今、私はそれに私の方法を変更します。
public List<MyObject> getSelectItems() {
List<MyObject> list = new LinkedList<MyObject>();
MyObject obj = new MyObject("<script>alert('xss is bad');</script>");
list.add(obj);
return list;
}
javascriptのdoesn'tがMenuRendererクラスと私のページでエスケープを取得私に警告メッセージが表示されます。
SelectItemのエスケープ属性のデフォルト値が「false」になる原因はありますか? どうすれば問題を解決できますか? (私はMojarra 2.1.7を使用します)
あなたは答えを見つけることができます。[こちら](http://stackoverflow.com/questions/14238646/how-to-escape-fselectitem-itemlabel-attribute) –
@VikasV:OPの具体的な問題は、もう一方の方法に関係します。 – BalusC