【问题标题】:Codeigniter Sessions Swapped - Mixed Between UsersCodeigniter 会话交换 - 用户之间混合
【发布时间】:2019-01-18 10:04:53
【问题描述】:

我面临的问题是,当具有相同 ID 的用户登录系统时,用户会话正在交换。 例如,如果我以 2 个不同的用户身份登录,一个在 Chrome 中,第二个在 Firefox 中, 并在一个浏览器会话中同时开始刷新页面将被遗忘,我将从其他浏览器获取会话 ID,

但如果我不同时刷新,这不会发生, 如果我在 WAMP 服务器上使用 localhost 托盘此问题,则不会出现此问题。

感谢任何建议、如何调试或如何解决问题

【问题讨论】:

  • 这是发生在本地主机还是实时服务器上?
  • 这发生在实时服务器上。
  • 我遇到过类似的奇怪会话行为,在我的情况下,它发生在共享主机上,并且与共享主机存储会话的方式有关。
  • 在我的情况下切换到非共享实际上解决了这个问题,但是由于我打算使用共享主机,我通过打开 csrf 保护来克服这个问题,所以每个用户会话都将具有唯一的 id在他们身上,没有更多的随机交换
  • sistem 在 WHM 系统上,我启用了 csrf 保护,但没有用,我会继续寻找解决方案,非常感谢 Hasta,

标签: php codeigniter session


【解决方案1】:

问题是由 Engintron 造成的,此缓存会话以及当 2 个用户同时刷新同一页面时,会话 ID 会混淆

【讨论】:

  • 是否有人有解决方案如何启用 Engintron,但要防止这种行为
【解决方案2】:

这个问题也可以通过在Engintron中禁用微缓存来解决,不需要禁用整个插件,至少你仍然可以使用静态文件缓存。

前往 WHM -> 用于 cPanel/WHM 的 Engintron -> 为 Nginx 编辑您的 custom_rules

在底部添加:

if ($SITE_URI ~* "yoursite.tld") {
   set $CACHE_BYPASS_FOR_DYNAMIC 1; # Disables micro-caching
}

点击“更新 /etc/nginx/custom_rules”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多