代码之家  ›  专栏  ›  技术社区  ›  bbutle01

最新版本中的PHP cookie行为更改

  •  0
  • bbutle01  · 技术社区  · 16 年前

    我有一个内部编写的网站,使用第三方登录机制。

    最近我们被要求保持PCI合规性,我在环境中做了很多更改。不久之后,我们发现曲奇有问题。除了从php 5.3移回5.2.11或其他更困难的更改,我已经回滚了所有的更改。

    这就是发生的事情。对于我们自己的内部管理,我编写了一个以用户名和密码作为查询字符串的登录页面,每个用户的管理页面都有一个“成为”链接,允许我们以那个人的身份登录。页面会用用户的cookie覆盖管理员的cookie,我们就是他们。据我所知,它没有先删除任何cookies,只是重写了。直到最近,它才起作用。是的,不安全,但这是内在的,请原谅我。

    现在,当我们跟踪链接时,我们的管理员将保持管理员身份。成为客户的唯一方法是注销,然后输入他们的用户名/密码。

    我注意到的另一件事是,网站的每个子目录都设置了cookies,以前我认为只有一个用于网站本身。但我不能肯定这已经改变了,以前可能有子目录…

    所以,我希望问题在于PHP在5.3中处理cookie的方式,要么不再覆盖现有cookie,要么创建特定于目录的cookie而不是站点范围的cookie。

    有什么想法吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Pekka    16 年前

    根据 this ,$cookie值不再流入$请求,尽管我找不到正式确认。如果是真的,并且您的应用程序使用$_请求来加载管理员OOKIE,那么可能就是这样。cookie已经设置好,但永远不会进入您的身份验证机制。因为普通用户是通过会话而不是通过cookie来识别的,所以没有问题。

    但这也可能是浏览器行为的改变,或者服务器环境的改变。也许值得先确认它到底是从哪里来的。

    比如说firefox 2,旧浏览器也会出现这种情况吗?

    如果是这样,你能切换回旧的PHP版本看看会发生什么吗?