我一直在对 PHP session 处理进行一些研究,发现 session.gc_maxlifetime
值为 1440 秒。
我一直想知道为什么标准值是 1440 以及它是如何计算的?
这个计算的依据是什么?
保持 session 多长时间才有意义?你会推荐 session.gc_maxlifetime 的最小/最大值是多少? 我想说,值越高,Web 应用就越容易受到 session 劫持。
最佳答案
真正的答案可能非常接近这个:
回到 PHP3 天,PHP 本身没有 session 支持。
但最初由 NetUSE AG 的 Boris Erdmann 和 Kristian Koehntopp 编写的名为 PHPLIB 的开源库通过 PHP3 代码提供 session 。
session 生命周期以 分钟 为单位,而不是秒。默认的生命周期是 1440 分钟,也就是 1 天。这是 PHPLIB 中的那行代码:
var $gc_time = 1440; ## Purge all session data older than 1440 minutes.
Sascha Schumann 在 1998 年到 2000 年期间参与了 PHPLIB 项目。毫无疑问,他熟悉 PHP3 session 代码。
然后 PHP4 在 2000 年推出,支持原生 session ,但现在以秒为单位指定生命周期。
我敢打赌,有人从来没有费心将分钟转换为秒。这个人很可能就是萨沙·舒曼。一旦该值被编码到 Zend 引擎中,它也成为配置 (php.ini
) 的默认值。
关于php - 为什么标准 session 生命周期是 24 分钟(1440 秒)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14703363/