Почему стандартное время жизни сеанса составляет 24 минуты (1440 секунд)?
Я делал некоторые исследования по обработке PHP сессии и наткнулся на session.gc_maxlifetime
стоимостью 1440 секунд.
Мне было интересно, почему стандартное значение 1440 и как оно рассчитывается?
Что является основой для этого расчета?
Как долго имеет смысл продолжать сеансы? Какие минимальные / максимальные значения для сеанса.gc_maxlifetime вы бы порекомендовали? Чем выше значение, тем более уязвимым является веб-приложение для захвата сеанса, я бы сказал.
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 дней