保持期間

php.ini 設定項目

session.gc_maxlifetime

  • サーバに保存されているセッションファイルの保存期間
  • default
    session.gc_maxlifetime = 1440

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 のみ変更をしても、デフォルトだとブラウザを閉じたらセッションが破棄される
  • default ... 0:ブラウザが閉じられるまで
    session.cookie_lifetime = 0

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にしてはならない

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-06-15 (水) 17:14:27 (679d)