Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

SessionIDがURLに出ちゃう件

プロト開発でChromeをメインに使っていて気付かなかったのですが、作成したプロトのwebアプリケーションを他のブラウザで動かしたら、ログイン後のURLにセッションIDが表示されていました;

http://localhost:8080/MyPrototype/faces/login.xhtml;jsessionid=xxxxxxxxxxxxxxxxxxxxxxxxxxxx

確認した限りでは、IE9,Firefox,Safariで表示されました。なぜChromeでは出なかったんだろう…謎。
いわゆるURL埋めこみとかURLリライティングと呼ばれるものですが、何かの本ではJava Servlet(J2EE)ではデフォルトでこうなることはない、と書いてありました。JavaEE6ではデフォルトなのでしょうか…?これも謎

ASP.NETではデフォルトがクッキーでした、確か。

いずれにせよ、IPAのセキュアプログラミング講座(http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/302.html)にもあるように、利用は推奨されていません。

ということで、web.xmlに以下を追加して解決しました。

<session-config>
    <!-- cookieを利用する(セッションIDのURL埋めこみを利用しない) -->
    <tracking-mode>
        COOKIE
    </tracking-mode>
</session-config>
にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村