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

5 浏览
0 Comments

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

我一直在研究PHP会话处理,并发现了1440秒的session.gc_maxlifetime值。

我一直在想为什么标准值是1440,以及它是如何计算的?

这个计算的依据是什么?

保留会话多长时间才有意义?你会推荐什么样的session.gc_maxlifetime的最小/最大值?

我认为,值越高,Web应用程序就越容易遭受会话劫持的威胁。

0
0 Comments

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

PHP3时代,PHP本身没有会话支持。但是,一个名为PHPLIB的开源库通过PHP3代码提供了会话支持。会话的生命周期以分钟为单位定义,默认生命周期是1440分钟,即一天。以下是PHPLIB中的代码行:

var $gc_time  = 1440;       ## Purge all session data older than 1440 minutes.

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

然后,在2000年,PHP4发布了原生会话支持,但是生命周期是以秒为单位指定的。

我敢打赌,有人根本没有将分钟转换为秒。可能这个人就是Sascha Schumann。一旦这个值被编码到Zend引擎中,它也成为了配置(php.ini)的默认值。

当单位发生变化时,24就有了特殊的含义。所以在给出的答案中,你的回答对我来说最有意义。

这真的很有趣!谢谢分享!

非常有趣!谢谢!

关于PHP4默认设置的一个参考:github.com/php/php-src/blob/PHP-4.0/ext/session/session.c

根据PHP文档,会话生命周期以秒为单位设置:php.net/manual/en/…

0
0 Comments

没有提到具体的研究。

0