【发布时间】: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 强制执行此操作。) -
我对此表示怀疑,每个浏览器都支持
SameSitecookie(显然除了 IE)。 developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/…。您是如何首先注意到这个问题的?背后有什么衡量标准吗?是否在多个操作系统上也观察到了这个问题(除了浏览器)? -
我在使用 chrome 80 时遇到了这些问题,然后将其回滚,并且正在开发下一个版本。然后我暂时离开了这个项目,现在我可以看到它的行为与以前完全相同。我可以在 mac 和 windows 上重现此错误。 atm 周围没有任何 linux。
标签: php wordpress google-chrome cookies payment