【问题标题】:Handling session_regenerate_id() in ajax requests处理 ajax 请求中的 session_regenerate_id()
【发布时间】:2015-08-04 13:06:15
【问题描述】:

我想稍微保护一下我的应用程序,尤其是我想改进会话的处理方式。所以,此刻我知道了几个事实:

  1. session_regenerate_id(false) 不会破坏旧会话
  2. session_regenerate_id(true) 破坏旧会话。对于普通的页面重新加载,使用session_regenerate_id(true) 没有任何问题。

但是,当发出几十个并发 AJAX 请求时,可能会有一个 导致错误消息object destruction failed的问题。

所以,没有什么可做的,那就用 session_regenerate_id(false) 在 AJAX 请求中。

但需要的是,以某种方式将以前的 outdated 会话标记为由于调用 session_regenerate_id(false) 而变得过时的“僵尸”会话,这些会话将以某种方式被销毁而不是乱扔会话文件夹。

我需要一些关于如何实施的实用建议。

【问题讨论】:

    标签: php ajax session


    【解决方案1】:

    所有会话清理,包括那些重新生成 ID 的会话,都由 PHP 的会话垃圾收集器处理。调用 session_regenerate_id(false) 从存储中删除旧会话时,没有什么特别需要的。

    PHP's settings 适用于session.gc_probabilitysession.gc_divisorsession.gc_maxlifetime

    您还可以根据last access time 运行自己的会话存储清理。

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 2019-11-20
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 2015-04-28
      • 1970-01-01
      相关资源
      最近更新 更多