用户是;“以其他人身份登录”;关于iOS版的Chrome

用户是;“以其他人身份登录”;关于iOS版的Chrome,ios,google-chrome,session,cookies,cache-control,Ios,Google Chrome,Session,Cookies,Cache Control,我们有一个独特的问题,影响着世界各地的一小部分用户。除了他们都在使用Chrome for iOS之外,没有任何东西能将他们联系起来 间歇性地,用户将登录到我们的应用程序()并显示为“其他人”。这个问题最近出现在没有新代码被推送到站点的时期 当然,我们检查的第一件事是我们的身份验证没有被窃听,或者用户的哈希(存储在cookie或PHP会话中)没有在某处交叉连接。问题不在身份验证系统中,它只影响使用Chrome for iOS的用户。使用Safari的用户不再看到这个问题 我们发送了以下PHP标头以

我们有一个独特的问题,影响着世界各地的一小部分用户。除了他们都在使用Chrome for iOS之外,没有任何东西能将他们联系起来

间歇性地,用户将登录到我们的应用程序()并显示为“其他人”。这个问题最近出现在没有新代码被推送到站点的时期

当然,我们检查的第一件事是我们的身份验证没有被窃听,或者用户的哈希(存储在cookie或PHP会话中)没有在某处交叉连接。问题不在身份验证系统中,它只影响使用Chrome for iOS的用户。使用Safari的用户不再看到这个问题

我们发送了以下PHP标头以防止缓存:

header("Cache-Control: no-cache, no-store, max-age=0, must-revalidate, private");
header("Pragma: no-cache");
这些用户“变成”的“目标用户”尚未确认也在使用Chrome。由于其他继续使用Chrome的用户仍然可以访问这些帐户,因此他们不必简单地停止使用浏览器


Chrome可以缓存cookie并在用户之间“共享”它们吗?这可能是一个DNS问题,它看到一个移动用户代理,为了节省加载时间,它检索缓存的信息,并在不进一步检查用户是谁的情况下将其传递出去?我知道这是一个延伸,但这是一个奇怪的问题,我们现在正在抓救命稻草。

我在Chrome数据压缩代理上工作

如果Chrome代理在这里出错,我会非常惊讶,因为我们尊重标准缓存头。也就是说,可能有一个bug。如果您可以尝试在有代理和没有代理的情况下复制,这将非常有用。另一种测试方法是在Incognito选项卡(不使用代理)中打开页面

(编辑)

我查看了一些我们从您的站点看到的标题,其中包括

缓存控制:最大年龄=2592000

这意味着这些响应可以公开缓存30天。我在网站上看到了来自许多不同URL的大量缓存头,这表明您的缓存规则没有像您想象的那样得到广泛应用;但我当然不知道网站的结构,也不知道这是否会导致你所描述的问题


请随时联系(电子邮件也可以),如果您仍然认为这是我们这边的问题,我很乐意帮助调试。

刚刚找到此网站:我们将尝试在标题中添加“缓存控制:无转换”,看看是否有帮助。SPDY协议是否与此问题有关?谢谢您的回复。这个bug不容易复制,但是,在添加“no transform”以避免代理之后,我们收到了另一个关于这个问题的用户报告。您发现我们的网站没有全面应用我们的缓存规则,这很有帮助!可能有一些小精灵躲在那里。你能举一个URL的例子,你在其中找到了“最大年龄=2592000”规则吗?再次感谢。我们发现我们的论坛页面没有应用相同的缓存控制规则,因为它插入了vBulletin软件。我们已将标题应用于此页面,并将密切监视此问题。此问题似乎已解决。感谢您在一些URL上发现错误的缓存控制头!最初更改为在登录固定用户后在主登录页上使用“无转换”,这些用户在登录后立即“切换”。对论坛页面标题的第二次更改修复了在正常导航期间“切换”的用户。我收回了它。今天收到了一份新的报告。有人在他们的iPhone上通过Chrome登录到他们的帐户,他们以其他人的身份出现。如果您有任何其他见解,我将不胜感激!很遗憾听到这个消息。很可能是我们的缓存正在为内容的旧(缓存)版本提供服务,因为它有30天的过期时间。但我仍然看到您的网站在30天到期后的回复,例如:/images/items/trinkets/2b33a9bc6f40c547e693173ce0851002.gif?cv=213