Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから
公開日:2013年3月9日
最終更新日:2013年12月26日

セッション管理の不備と対策(Java編)

セッション管理の不備に対する根本的対策は、以下の記事を参照してください。

これを Java で実現すると以下のようになります。

■1.推測困難なセッション ID を利用する
Java のセッション ID の生成は特に問題ないので、Java 実行環境のセッション ID 作成機能を利用します。

■2.セッション ID を URL に含めない
Java はデフォルトでセッション ID を URL に含みません。

■3.HTTPS 通信で利用する Cookie には secure 属性を付与する
Java で Cookie に secure 属性を付与するにはサーブレットで以下のように記述します。HttpOnly 属性も付与したほうがよいでしょう。

レスポンスヘッダーには以下のように出力されます。

セッション ID に secure 属性と HttpOnly 属性を付与する方法は以下の記事を参照してください。

■4-1.ログイン後にセッションを新規に開始する
■4-2.ログイン後にセッション ID とは別の秘密情報を持ち、各ページでその値をチェックする
Java では 4-1 の方法を採用します。

Java で既存のセッションを破棄して、セッション ID を振り直し、新規セッションを開始するには、サーブレットで HttpSession#invalidate メソッドを実行後、HttpServletRequest#getSession メソッドを実行します。

下図の簡単なログイン機能で動作を確認します。

login

・login.jsp

・login(Login.java)

・welcome.jsp

login サーブレットのリクエストヘッダーは以下のようになります。

レスポンスヘッダーは以下のようになっていて、セッションIDが振り直されていることが確認できます。


スポンサーリンク




カテゴリー:Webアプリケーションセキュリティ

Twitter でも、いろんな情報を発信しています。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA