php - 为什么标准 session 生命周期是 24 分钟(1440 秒)?

标签 php security session

我一直在对 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/

相关文章:

php - 为什么 php 不能将引号转换为 mysql 的 html 实体?

c - 格式化字符串漏洞,意外结果

security - 如果我在 OpenSSL 中加载新证书,证书是否会更改 SSL 连接/状态 "points"?

delphi - Delphi XE2 中的 IntraWeb 12 的数据库、 session 和持久性

php - 将 mysql 结果存储在 SESSION 数组中以供以后使用(通过 in_array 检查)

php - 无法使简单的 if/else 语句起作用

php - 我无法使用准备好的语句将数据输入到我的表中

javascript - 是否有签署和验证 node.js 代码的标准?

android - android中的 session

php - 如何自动完成 jquery 和 codeigniter session