【问题标题】:Wordpress losing session with chromeWordpress 失去与 chrome 的会话
【发布时间】:2021-06-09 05:57:26
【问题描述】:

几周以来,我们注意到,结帐返回的客户偶尔会丢失登录状态。我们发现这种情况只发生在 88 左右的 chrome 版本中。我能找到的是,通常的检查

isset(WC()->session->chosen_payment_method)

使用 chrome 时返回 false,使用 firefox 或其他浏览器时返回 true(即使 edge 和 safari 也能按预期工作)

有人知道如何“对抗”这个吗?

到目前为止,我试图找出如何通过 url 参数传递 sessionid 以在用户从 3rd 方站点重定向回来后重建 cookie。但这并不是很幸运,这样做甚至似乎存在安全风险,因为这会导致中间人攻击。

谢谢!

【问题讨论】:

  • 听起来像是 cookie 的 SameSite 属性有问题。 blog.chromium.org/2019/10/developers-get-ready-for-new.html(虽然您应该从 2020 年 2 月开始就已经看到问题,但 Chrome 开始使用 v80 强制执行此操作。)
  • 我对此表示怀疑,每个浏览器都支持SameSite cookie(显然除了 IE)。 developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/…。您是如何首先注意到这个问题的?背后有什么衡量标准吗?是否在多个操作系统上也观察到了这个问题(除了浏览器)?
  • 我在使用 chrome 80 时遇到了这些问题,然后将其回滚,并且正在开发下一个版本。然后我暂时离开了这个项目,现在我可以看到它的行为与以前完全相同。我可以在 mac 和 windows 上重现此错误。 atm 周围没有任何 linux。

标签: php wordpress google-chrome cookies payment


【解决方案1】:

如果这确实与SameSite cookie 有关,那么就像@CBroe 建议的那样,问题应该至少从一月份就出现了。

Chromium 人员发表了一篇关于潜在问题以及如何检测和解决问题的文章。你可以在这里查看Tips for testing and debugging SameSite-by-default and “SameSite=None; Secure” cookies

如果确实链接到SameSite cookie,这里有一些开始修复的资源。

但又一次,因为它只影响 Chromium 用户,所以我怀疑它与 SameSite cookie 有关。

【讨论】:

    猜你喜欢
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多