デフォルトのPHPセッションモジュールは、
- session_
set_ save_ handler関数 - bool session_
set_ ( callback $open , callback $close , callback $read , callback $write , callback $destroy , callback $gc )save_ handler
ユーザ定義セッションセーブハンドラであれば未初期化のセッションIDを検出することも可能です。
不正なセッションIDの利用を検出するためにIPアドレスが利用できるのではないかと考える方もいるかも知れません。しかし、
- ダイアルアップ・
公衆無線LANなどを利用し別のアクセスポイントからアクセスした場合 - 負荷分散のため、
ゲートウェイやプロキシが複数設定されており利用するゲートウェイ・ プロキシが動的に変更される場合 - Tor
(トーア: 匿名性を保つためのネットワーク) などを利用した場合
身近な例では、
対策のまとめ
- セッションアダプションに脆弱でないセッションセーブハンドラを作成する
- ソースIPアドレスの所有者情報などを利用して不正利用の可能性がある利用者ログを作成する
- 上位ドメインのクッキーを削除してもよい場合は削除する