SAStrutsのチュートリアルで見つけた脆弱性?

更新可能な繰り返しのチュートリアル
思わずうなってしまいました。素敵だ。
なんつーか、ほかの繰り返しでやっていることがこれを見るとすっきり理解できる。
ディライト!ですね。



でも残念ながら脆弱性?発見

<input type="text" name="mapItemsItems[${s.index}][${s2.index}].id" value="${m.id}"/>

となっているので、
以下入力でスクリプト実行さてしまう。

"/><script>alert('hoge')</script><div name="hoge


対応としては

<input type="text"
   name="mapItemsItems[${s.index}][${s2.index}].id" value="${f:h(m.id)}"/>

のようにf:h()を利用


入力項目か否かにかかわらず出力項目はすべてエスケープすべきという対策に準ずるなら
indexあたりもエスケープすること。