1. ホーム
  2. php

[解決済み] 標準のセッション寿命が24分(1440秒)なのはなぜですか?

2022-11-29 02:43:13

質問

PHP のセッション処理について調べていたところ、PHP のセッション処理における session.gc_maxlifetime の値が 1440 秒であることを知りました。 なぜ標準値が1440なのか、どのように計算されているのか気になりました。 この計算の根拠は何でしょうか?

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

どのように解決するのですか?

本当の答えは、おそらくこれに非常に近いものです。

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が登場し、ネイティブセッションがサポートされましたが、今度は寿命が秒単位で指定されるようになりました。

誰かが分を秒に変換することを気にしなかったことに賭けるよ。 その人物はおそらく Sascha Schumann だったでしょう。 この値が Zend エンジンにコード化されると、設定 ( php.ini ) のデフォルトにもなりました。