【Java】セッションとクッキーについて

セッションとクッキーについてメモ。

  • クッキーについて

    • 保存場所

      C:\Users\ユーザ名\AppData\Local\Microsoft\Windows\Temporary Internet Files
      
    • ファイル名

      Cookie:ユーザ名@サイト名/
      
    • ブラウザメモリに保存されているクッキーの値が最優先
      ファイルに保存されたクッキーの値を変更しても
      ブラウザを閉じない限り、異なるIEで繋いでもブラウザで取得済の
      ブラウザメモリのクッキーの値を使用する。
      ブラウザを閉じて繋ぎなおすと、ファイルに保存されたクッキーの値を使用する。

      ただしクッキーの値の変更はツールを使用しないと有効にならない。
      手書きで変更しても読み取れずに2番目の動作時にクッキーの値がNULLとなる。

  • セッションについて

    • 保存場所
      ブラウザメモリまたはクッキーのファイルに保存。
      キー名はJSESSIONIDであり、クッキーの値が優先される。
    • セッションハイジャック
      セッションIDはサーバーとやり取りしている中でブラウザが自動でサーバーへ送信しているが、
      下記の記述で明示的に直接指定することも可能。

      変更前
      セッションIDはブラウザメモリまたはクッキーの値を自動でサーバーへ送信

      http://z-area.net/コンテキスト名?request1=test1&request2=test2
      

      変更後
      セッションIDはURLの値をサーバーへ送信

      http://z-area.net/コンテキスト名;jsessionid=12345?request1=test1&request2=test2
      

      12345のセッションIDが正規のユーザのものである場合、
      変更後のリクエストは正常に処理される。

      ログイン画面を表示した時点でセッションIDが採番されるので、
      セッションハイジャックを防ぐにはログイン成功後にセッションIDを採番し直す。

  • ツール
    クッキー書き換え:IECookiesView(日本語化可能)
    HTTP情報参照:ieHTTPHeaders