Spring Advent Calendar 8日目の記事です。
昨日はdolinuxさんでした!
時間がないので、超小ネタを。
Spring MVCはぐぐるといろんなサンプルコードがでてきます。良いサンプルもあれば、まねしては行けないサンプルも・・・
よく見る、「これはやめてほしい・・・」と思うサンプルは以下のようなJSPのもの。
<table>
<tr>
<th>Name</th><th>Email</th>
</tr>
<c:forEach items="${users}" var="user">
<tr>
<td>${user.name}</td>
<td>${user.email}</td>
</tr>
</c:forEach>
</table>
分かりますか?
このJSPはXSS脆弱性を含んでいます。
最近のテンプレートエンジンは大体デフォルトエスケープですが、 JSPのEL式はエスケープしてくれません。Spring MVCでJSPを使う場合は必ず出力値を以下のようにエスケープするように意識してください。EL関数を作ってもよし。
<table>
<tr>
<th>Name</th><th>Email</th>
</tr>
<c:forEach items="${users}" var="user">
<tr>
<td><c:out value="${user.name}" /></td>
<td><c:out value="${user.email}" /></td>
</tr>
</c:forEach>
</table>
最近だとThymeLeaf使った方がいいかもですね〜
明日はおれ?