---
title: 【Spring Advent Calendar 2013 8日目 Spring MVCのサンプルコードをコピペする際に気をつけること spadc13
tags: []
categories: ["Programming", "Java", "Spring", "AdventCalendar", "2013"]
date: 2013-12-07T15:26:01Z
updated: 2013-12-07T15:26:01Z
---

[Spring Advent Calendar][1] 8日目の記事です。

昨日は[dolinuxさん][2]でした！


時間がないので、超小ネタを。

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

明日はおれ？

  [1]: http://www.adventar.org/calendars/153
  [2]: http://doilux.hatenablog.com/entry/2013/12/07/131627
