web-dev-qa-db-ja.com

標準セッションの有効期間が24分(1440秒)なのはなぜですか?

私はPHP Session Handlingについていくつかの調査を行ってきましたが、session.gc_maxlifetime値1440秒。なぜ標準値が1440で、どのように計算されるのか疑問に思っています。この計算の根拠は何ですか?

セッションを維持するのはどのくらいの意味がありますか? session.gc_maxlifetimeの最小/最大値は何ですか?値が高いほど、Web-Appがセッションハイジャックに対して脆弱になります。

95
Anna Völkl

本当の答えはおそらくこれに非常に近いでしょう:

PHP3日間、PHP自体はセッションをサポートしていませんでした。

しかし、最初にNetUSE AGのBoris ErdmannとKristian Koehntoppによって書かれたPHPLIBと呼ばれるオープンソースライブラリは、PHP3コードを介してセッションを提供しました。

セッションの有効期間は、秒ではなくで定義されました。また、デフォルトのライフタイムは1440分、つまり1日でした。 PHPLIBからのコード行は次のとおりです。

var $gc_time  = 1440;       ## Purge all session data older than 1440 minutes.

Sascha Schumannは1998年から2000年頃にPHPLIBプロジェクトに関与しました。PHP3セッションコードに精通していたことは間違いありません。

その後、2000年にPHP4がネイティブセッションサポートとともに登場しましたが、現在ではライフタイムは秒単位で指定されています。

数分から数秒に変換することに悩まされる人はいないに違いない。人がサシャ・シューマンだった可能性が高いです。その値がZendエンジンにコード化されると、構成(php.ini)デフォルトも。

173
CXJ