IK.AM

@making's tech note


【Spring Advent Calendar 2013 8日目 Spring MVCのサンプルコードをコピペする際に気をつけること spadc13

🗃 {Programming/Java/Spring/AdventCalendar/2013}
🗓 Updated at 2013-12-07T15:26:01Z  🗓 Created at 2013-12-07T15:26:01Z   🌎 English Page

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

明日はおれ?


✒️️ Edit  ⏰ History  🗑 Delete