Я занимался некоторыми исследованиями по обработке сеансов PHP и session.gc_maxlifetime
значение session.gc_maxlifetime
1440 секунд. Мне было интересно, почему стандартное значение составляет 1440 и как оно рассчитывается? В чем заключается основа для этого расчета?
Как долго имеет смысл проводить сеансы? Какие минимальные / максимальные значения для session.gc_maxlifetime вы бы порекомендовали? Я бы сказал, что чем выше значение, тем более уязвимым является веб-приложение для захвата сеанса.
Реальный ответ, вероятно, очень близок к этому:
Во время 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, он также стал настройкой ( php.ini
).
1440 используется при расчете времени, превращающем секунды в часы / дни.
Пример:
9 дней [* 60] = 540 [* 1440] = 777600 секунд
То же самое верно в обратном порядке:
777600 секунд [/ 1440] = 540 [/ 60] = 9 дней