107

我一直在对 PHP 会话处理进行一些研究,并遇到了session.gc_maxlifetime1440 秒的值。我一直想知道为什么标准值是 1440 以及它是如何计算的?这个计算的依据是什么?

保持会话多长时间才有意义?你会推荐 session.gc_maxlifetime 的最小/最大值是多少?我想说,该值越高,Web 应用程序就越容易受到会话劫持的攻击。

4

2 回答 2

194

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

回到 PHP3 天,PHP 本身没有会话支持。

但最初由 NetUSE AG 的 Boris Erdmann 和 Kristian Koehntopp 编写的名为 PHPLIB 的开源库通过 PHP3 代码提供会话。

会话生命周期以分钟而不是秒为单位定义。默认的生命周期是 1440 分钟,也就是 1 天。这是 PHPLIB 中的那行代码:

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

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

然后 PHP4 于 2000 年推出,支持本地会话,但现在以秒为单位指定生命周期。

I'll bet someone just never bothered converting minutes to seconds. It's probable that person was Sascha Schumann. Once that value was coded into the Zend engine, it became the configuration (php.ini) default as well.

于 2016-05-12T03:36:55.103 回答
-18

1440 用于将秒转换为小时/天的时间计算。

  • 1 天 = 24 小时(小时 * 24 = 1 天)
  • 天 = 1440 分钟(分钟 * 60 * 24 = 1 天)
  • 天 = 86400 秒(秒 * 60 * 1440 = 1 天)

例子:

9 天 [* 60] = 540 [* 1440] = 777600 秒

反过来也是一样的:

777600 秒 [/ 1440] = 540 [/ 60] = 9 天

于 2014-07-31T13:41:41.507 回答