Почему стандартное время жизни сеанса составляет 24 минуты (1440 секунд)?


Я делал некоторые исследования по обработке PHP сессии и наткнулся на session.gc_maxlifetime стоимостью 1440 секунд. Мне было интересно, почему стандартное значение 1440 и как оно рассчитывается? Что является основой для этого расчета?

Как долго имеет смысл продолжать сеансы? Какие минимальные / максимальные значения для сеанса.gc_maxlifetime вы бы порекомендовали? Чем выше значение, тем более уязвимым является веб-приложение для захвата сеанса, я бы сказал.

2 87

2 ответа:

реальный ответ, вероятно, очень близок к этому:

назад в течение PHP3 дней, PHP сам не имел поддержки сеанса.

но библиотека с открытым исходным кодом под названием PHPLIB, первоначально написанная Борисом Эрдманом и Кристианом Кехнтоппом из NetUSE AG, предоставляла сеансы через код PHP3.

время жизни сеанса было определено в минут, а не секунд. И время жизни по умолчанию 1440 минут, или ровно один день. Вот эта строка кода из PHPLIB:

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

Саша Шуман участвовал в проекте PHPLIB в период с 1998 по 2000 год. Нет сомнений, что он был знаком с кодом сеанса PHP3.

затем PHP4 вышел в 2000 году с поддержкой собственного сеанса, но теперь время жизни было указано в секундах.

Я готов поспорить, что кто-то просто никогда не беспокоился о преобразовании минут в секунды. Вероятно, этим человеком была Саша Шуман. Как только это значение было закодировано в Zend engine, оно стала конфигурация (php.ini) по умолчанию.

1440 используется в расчете времени, превращая секунды в часы / дни.

  • 1 день = 24 часа (часы * 24 = 1 день )
  • день = 1440 минут (минут * 60 * 24 = 1 день )
  • день = 86400 секунд (секунд * 60 * 1440 = 1 день )

пример:

9 дней [* 60] = 540 [* 1440] = 777600 секунд

то же самое верно и в обратном порядке:

777600 секунд [/ 1440] = 540 [/ 60] = 9 дней