我一直在研究PHP会话处理,发现session.gc_maxlifetime
值为1440秒。我一直在想为什么标准值是1440,它是如何计算的?这个计算的依据是什么?
保持会话多长时间有意义?您建议session.gc_maxlifetime的最小/最大值是多少?我认为,该值越高,Web应用程序就越容易受到会话劫持。
真正的答案可能非常接近:
在PHP3时代,PHP本身没有会话支持。
但一个名为PHPLIB的开源库,最初由NetUSE AG的Boris Erdmann和Kristian Koehntopp编写,通过PHP3代码提供会话。
会话生存期定义为分钟,而不是秒。默认的生存时间是1440分钟,也就是一天。这是PHPLIB的代码行:
var $gc_time = 1440; ## Purge all session data older than 1440 minutes.
Sascha Schumann在1998年至2000年期间参与了PHPLIB项目。毫无疑问,他熟悉PHP3会话代码。
然后PHP4在2000年推出,提供了本机会话支持,但现在使用寿命是以秒为单位的。
我敢打赌,有人从来没有把分钟转换成秒。那个人很可能就是萨莎·舒曼。一旦该值被编码到Zend引擎中,它也成为配置(php.ini
)的默认值。
1440用于将秒转换为小时/天的时间计算。
- 1天=24小时(小时*24=1天)
- 1天=1440分钟(分钟*60*24=1天)
- 1天=86400秒(秒*60*1440=1天)
示例:
9天[*60]=540[*1440]=777600秒
反过来也是如此:
777600秒[/1440]=540[/60]=9天