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

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

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

Ответ 1

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

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

Но библиотека с открытым исходным кодом, называемая PHPLIB, изначально написанная Борисом Эрдманом и Kristian Koehntopp из 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) по умолчанию.

Ответ 2

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

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

Пример:

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

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

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