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


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

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

Author: Doug, 2013-02-05

2 answers

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

Во времена 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, оно стало конфигурация (php.ini) также по умолчанию.

 158
Author: CXJ, 2018-07-19 15:28:25

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

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

Пример:

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

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

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

 -14
Author: Steve Terjeson, 2014-07-31 13:57:11