为什么标准会话的生命周期为24分钟(1440秒)?

Ann*_*lkl 96 php security session

我一直在研究PHP会话处理,并且遇到了session.gc_maxlifetime1440秒的值.我一直在想为什么标准值是1440以及如何计算?这个计算的基础是什么?

保持会话有多长时间?您建议使用session.gc_maxlifetime的最小值/最大值?值得越高,Web-App对于会话劫持越脆弱,我会说.

CXJ*_*CXJ 176

真正的答案可能非常接近于此:

在PHP3期间,PHP本身没有会话支持.

但是一个名为PHPLIB的开源库,最初由Borys Erdmann和来自NetUSE AG的Kristian Koehntopp编写,通过PHP3代码提供会话.

会话生存期定义为分钟,而不是秒.默认生命周期为1440分钟,或恰好一天.这是PHPLIB的代码行:

var $gc_time  = 1440;       ## Purge all session data older than 1440 minutes.
Run Code Online (Sandbox Code Playgroud)

Sascha Schumann在1998年至2000年期间参与了PHPLIB项目.毫无疑问,他熟悉PHP3会话代码.

然后PHP4在2000年推出了原生会话支持,但现在生命周期以秒为单位指定.

我敢打赌,有人从不打扰将分钟转换为秒.这个人很可能是Sascha Schumann.一旦该值被编码到Zend引擎中,它也成为配置(php.ini)默认值.

  • 令人惊讶的是,在更换单元时24具有特殊的意义。因此,从给定的答案中,您的回答对我来说最有意义。 (3认同)
  • 这真的很有趣!谢谢! (3认同)
  • 那很有意思。感谢分享!:) (2认同)