繁体   English   中英

重新生成PHP会话ID和两次刷新-浏览器未收到新的Cookie

[英]Regenerating PHP session ID and double refresh - browser not recieveing the new cookie

我已经用我自己的本机会话实现替换了有些故障的CodeIgniter会话库。

两者的行为相同,并且在一定时间后更改会话ID,并且都遇到相同的问题,出于这个问题的考虑,可以说会话每分钟重新生成一次。

当用户查看页面并等待一分钟时,在下一页请求上,将重新生成会话ID。 但是,当用户请求超时或他们“两次刷新”页面时,就会出现问题。 浏览器没有收到新的cookie,因此将在下一个请求时开始新的会话。 因此,如果用户在重新生成ID时点击刷新,然后又快速连续点击刷新,则他们将失去会话。

我知道更改会话ID是防止会话固定的好主意,但是有什么办法可以解决此问题? 显然,增加重新生成ID的时间将限制这种情况的发生,但似乎仍然很可能发生。

谢谢你的帮助!

  1. 在您的数据库中添加一列“ previous_session_ID”
  2. 将当前会话ID移到“ previous_session_ID”中-然后生成新的会话ID并将其存储在current_session_ID中
  3. 当用户尝试使用会话ID访问您的页面时-检查当前ID和“ previous_session_ID”

问题已解决-他们现在可以进行“两次刷新”并仍然访问该页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM