保持期間 †
php.ini 設定項目 †
session.gc_maxlifetime †
- サーバに保存されているセッションファイルの保存期間
session.gc_probability †
session.gc_divisor †
- session.gc_maxlifetimeを過ぎると必ずセッションファイルが削除されるわけではなく、PHPにリクエストがあったときに (session.gc_probability / session.gc_divisor) の確率でGCが起動して実際に削除される
- セッションファイルそのものには有効期限は書かれていないため、session.gc_maxlifetimeを過ぎてもGC起動前であればセッションデータにアクセス可能
- デフォルトは session.gc_probability=1、session.gc_divisor=100 で、1%の確率でGCが起動する
session.cookie_lifetime †
- ブラウザのクッキーの有効期間
- session.gc_maxlifetime のみ変更をしても、デフォルトだとブラウザを閉じたらセッションが破棄される
session.use_cookies †
session.use_only_cookies †
- セッションの保存にCookieを使用するか。
- 両方ともデフォルトは1で、0にしてはいけない
- session.use_cookiesは「Cookieを使用してもいいか?」
- session.use_only_cookiesは「必ずCookieを使用するか?」
- session.use_only_cookies=0にすると、index.php?PHPSSID=hogeというURLでセッションIDが有効になり、容易にセッションハイジャックできてしまうため、0にしてはならない
|