2014年11月13日

26. HTTPセッション(HttpSession)を利用する処理について(3)

新規にHTTPセッション(HttpSession)を生成する( getSession()/getSession(true) )タイミングはログイン時のみとすること。
これにより、無駄なメモリ消費を削減できるため、HTTPセッション数=ログインユーザ数にできるため。

また、セッションIDの盗聴を防止するため、ログイン以降("ログイン時を含む")はHTTPS通信に限定すること。
ただし、HTTPS通信によるパフォーマンスダウンを回避するため、(実害のない)静的コンテンツは除く。

さらに、クッキー(Cookie)でセッションIDを連携する場合は、クッキーにsecure属性を設定すること。
ただし、Apache or Tomcat でSSL処理する場合は基本、意識する必要がなく、SSLアクセラレータなどでSSL処理する場合のみ、server.xml の Connectorタグ に secure="true" を指定する。

そして、SessionFixation(セッション固定攻撃)への対策として、既にHTTPセッションが存在する場合は、一旦、破棄する( invalidate() )こと。

なお、フレームワークを利用している場合は、コーディングの利便性のため、勝手にHTTPセッションが生成される傾向にあるため、注意すること。

この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック