SameSite 属性和 Facebook SDK

SameSite attribute and Facebook SDK

我正在尝试解决从 Chrome 浏览器收到的警告:

A cookie associated with a cross-site resource at http://www.facebook.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032. <br/>

我正在使用 Facebook 登录 web SDK。当试图摆脱警告时,我创建了一个没有 cookie 的非常简单的页面。单个 cookie 不是由我的脚本创建的,而是来自 Facebook 的。看起来后端代码并没有真正影响 cookie。它在响应中设置 header.

在PHP代码中我引入了这段代码:

$fbcook = $_COOKIE[$facebookcookiename];
setrawcookie($facebookcookiename, $fbcook, ['samesite' => 'None', 'secure' => true]);

它生效了,当我调试我在 headers 中看到的网络时:

set-cookie: fbcookie=value; secure; SameSite=None

原始值为base_domain=.blabla.bla

请求中的cookie属性header:

cookie: fbcookie=value

并且Chrome中有网络调试信息:

如果在 facebook.com 再次设置它,我希望如此,因为我在警告中看到 'at http://www.facebook.com/' 而不是关于我的网站 blabla.bla。有没有办法摆脱警告?另一个问题: Chrome 更改政策后功能会受到影响吗?我想在不更改浏览器设置的情况下执行此操作。该站点的用户不太可能进行任何更改以删除浏览器中的任何安全修复程序。

不,这不是您可以做的任何事情。这不是你的 cookie,它是由 Facebook 设置的,对 他们的 域有效。

Facebook 必须解决这个问题,您可以放心,他们会及时解决,否则它可能会破坏很多网站的登录功能。