Я провел некоторое исследование обработки сеансов PHP и обнаружил session.gc_maxlifetime
значение 1440 секунд. Мне вот интересно, почему стандартное значение 1440 и как оно рассчитывается? На чем основан этот расчет?
Как долго имеет смысл проводить сеансы? Какие минимальные / максимальные значения для session.gc_maxlifetime вы бы порекомендовали? Я бы сказал, что чем выше значение, тем более уязвимо веб-приложение для взлома сеанса.
+1
Хороший вопрос. Что-то связанное с 60 x 12 x 2 ... Давайте подождем интересных ответов ... :)1440
действительно было первоначальное количество минут для тайм-аута, поэтому я думаю, мы никогда не узнаем, если кто-то не выследит Сашу Шумана.Ответы:
Настоящий ответ, вероятно, очень близок к этому:
Еще во времена PHP3 сам PHP не имел поддержки сеансов.
Но библиотека с открытым исходным кодом PHPLIB, первоначально написанная Борисом Эрдманном и Кристианом Кентоппом из NetUSE AG, обеспечивала сеансы через код PHP3.
Время жизни сеанса определялось в минутах , а не в секундах. И время жизни по умолчанию было 1440 минут, или ровно один день. Вот эта строка кода из PHPLIB:
Саша Шуман был вовлечен в проект PHPLIB в период с 1998 по 2000 год. Несомненно, он был знаком с кодом сеанса PHP3.
Затем в 2000 году вышел PHP4 с собственной поддержкой сеансов, но теперь время жизни было указано в секундах.
Бьюсь об заклад, кто-то просто никогда не удосужился перевести минуты в секунды. Вероятно, этим человеком был Саша Шуман. После того, как это значение было закодировано в движке Zend, оно также стало значением по
php.ini
умолчанию для configuration ( ).источник
1440 используется для вычисления времени, превращая секунды в часы / дни.
Пример:
То же верно и в обратном направлении:
источник