php - Cakephp/php 用户 session 交换我们的一部分客户

标签 php session cakephp cookies routing

有一个我们无法复制的错误,涉及到我们企业客户的一个特定区域的用户交换。例如,一个用户在登录页面上以自己的身份登录,到家时是另一个用户。

这似乎是意外的 session 劫持,这里是线索:

  • cakephp 安全设置为低(这仅意味着 cookie 不 重写每个页面加载,并且 cookie 不做用户代理 检查)
  • 我们的 cookie 设置为不关心子域(.example.com 而不是 example.com)
  • 如果企业用户登录到错误的区域,他们将使用 302 重定向(我们应该使用 303 吗?)
  • 不小心发出了 301,但用户可以复制
  • 所有受影响的用户都在一个路由器后面,通过 Sprint MPLS 共享互联网
  • 所有受影响的用户可能都在使用客户提供的计算机
  • 他们的 IT 声称没有代理缓存,也没有远程 VPN 访问,但他们声称能够从家庭计算机和网络外复制问题。

由于我们无法以任何方式重现该问题,因此我们只能假设该问题特定于他们的网络。

我们如何证明他们的网络/计算机导致了 session 交换?或者,当其他用户没有遇到此问题时,我们这边的什么配置可能会导致此问题?

[编辑/更新]

响应评论提供的某些方向 - 我们的流量不足以发送重复的 ID。 (统计概率太低,无法看到我们看到客户复制的内容)。

另见:

更新:

我们使用 FCGI,显然需要 mod_php 才能理解 x_forwarded_for

最佳答案

这可能是注销中不正确的 session 失效问题。请确保 session 中的所有变量都正确终止或显式空终止 session 中的每个对象,然后使 session 无效。

第二个原因可能是使用变量检查代码中的静态变量。静态变量使用不当也可能导致此间歇性问题。

使用记录器记录映射到用户 ID 的 session ID,这可以缩小您的问题范围并帮助您了解到底发生了什么。

在登录操作中使现有 session 无效并创建一个新 session 并将内容复制到新 session 将有很大帮助。

关于php - Cakephp/php 用户 session 交换我们的一部分客户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6791446/

相关文章:

asp.net - 可以在 session 中存储大量数据吗?

cakephp - 如何在 CakePHP 3.0 中构建这个复杂的数据库查询?

php - 通过 jquery 可折叠的动态 BOM?

php - 用户身份验证-安全风险通过 HTTP 传递 session cookie?

php - 仅显示帖子的子类别

c# - MVC 4 "The using block is missing a } character"

php - CakePHP:值未保存到 Db

php - CakePHP 权限错误

php - Node Crypto createHmac() 输出与具有相同输入的 PHP hash_hmac() 输出不同吗?

php - 数据库错误 - 仅在某些浏览器中