セッション管理という概念について@PHP技術

前回、セッションハイジャックの回で誤った解釈をしつつ進んでいるので、改めてセッション管理について考えたいと思います。

まず、前回の課題として、

  • PHPにおけるセッション変数保持の仕組み
  • Cookieに限らないセッション保持の仕組み

を理解することです。

まず、PHPにおけるセッション変数保持のしくみについて、再確認します。

  • クライアントはサーバーからセッションキーを受け取る
  • サーバーにはセッションキーを鍵とした実体(値)を保持している
  • クライアントはセッションキーを使って実体を得ることができる
  • セッションキーの保持の仕方はなんでもよい
  • PHPではphp.iniの設定によってはCookieからしか取得できないパターンやURLからも取得できるようにできる。


ということで、まず、PHPのセッション変数を利用しようと思います
ページ更新ごとに閲覧者のビュー数をカウントアップしていくスクリプトを書いて〜
↓こんなのです

このページのパケットをキャプチャしてみました。
どこかでSetCookieをしているはず!
↓探してみると、ありました

ブラウザのオプションからも参照できます

試しにCookieを削除してみると…リセットされました。
なるほど、ターゲットサイトURL+CookieのPHPSESSIDがセッションへの参照で、Cookieの値がセッションキーになっている感じですね。
Cookieにはexpireが設定できるので、セッション維持する為にexpireを利用すると便利ということですねー。
→ということは、Cookie書き換えたら強制的にセッション維持できるということなのでしょうか…

携帯などではCookieが使えない為、URLなどにセッションキーを含ませる方法があるというのが納得です。

→その場合、expireってどうするんだろう