Dec 7, 2013
Dec 7, 2013
N/A Views
MD
warning
この記事は2年以上前に更新されたものです。情報が古くなっている可能性があります。

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使った方がいいかもですね〜

明日はおれ?

Found a mistake? Update the entry.
Share this article: