我想保护一点我的应用程序,特别是我想改进会话的处理方式。所以,此刻我知道几个事实:
session_regenerate_id(false)
不会销毁旧会话session_regenerate_id(true)
摧毁旧会话。使用普通页面重新加载时,使用session_regenerate_id(true)
。然而,在制作数十个并发 AJAX请求时,可能会有一个
导致错误消息object destruction failed
的问题。
所以,没有什么可做的,然后再使用
AJAX请求中的session_regenerate_id(false)
。
但需要的是,以某种方式标记以前的过时的会话,这些会话因调用session_regenerate_id(false)
而变得过时,因为" zombie"会以某种方式被破坏而不会丢失会话文件夹。
我需要一些关于如何实现这一点的实用建议。
答案 0 :(得分:0)
所有会话清理(包括具有重新生成的ID的清理)都由PHP的会话垃圾收集器处理。调用session_regenerate_id(false)
从存储中删除旧会话时,没有什么特别需要。
session.gc_probability
,session.gc_divisor
和session.gc_maxlifetime
的
您还可以根据last access time运行自己的会话存储清理。