1

cookie.gc_maxlifetime 的默认设置是 24 分钟,所以即使我将 cookie 设置为一周后过期,“记住我”也会工作 24 分钟,所以我考虑延长 gc_maxlifetime,但也许有更好的解决方案?

4

2 回答 2

2

垃圾收集器之所以这样称呼,是因为它确实收集垃圾:如果您不删除旧会话文件,那么任何人都可以简单地在您的站点上进行数十亿个 GET / 请求(不保存 cookie),您的服务器将生成数十亿个不会被删除的会话文件删除一周 - 它可能会大大降低您的网站速度,甚至会弄乱您的文件系统。如果您想实现“记住我”功能 - 那么您将不得不进行自己的垃圾收集(例如,来自同一 IP 的不超过 100 个会话等),甚至可能实现您自己的会话处理(例如存储它们在数据库中以提高会话数据查找速度并为更好的可伸缩性做准备)。

于 2011-08-04T08:16:12.493 回答
1

我猜session.gc_maxlifetime,也许session.cookie_lifetime是你的意思?

好吧,你可以这样做,让你的会话持续那么久。我宁愿不使用内置会话处理,而是设置一个具有我想要的生命周期和一些哈希值的 cookie;我会将该哈希保存在数据库中。

持续这么长时间的“正常”会话不是一个好主意IMO,例如出于安全原因。

于 2011-08-04T07:26:47.360 回答