SameSite属性和Facebook SDK

时间:2020-02-21 10:48:23

标签: php facebook http web samesite

我正在尝试解决从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 Login Web SDK。当试图摆脱警告时,我创建了一个非常简单的页面,没有cookie。单个cookie不是由我的脚本创建的,而是来自Facebook的。看起来后端代码并没有真正影响cookie。在响应头中设置。

在PHP代码中,我介绍了此代码:

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

它生效,当我调试网络时,我在标题中看到了

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

原始值为base_domain = .blabla.bla

请求标头中的cookie属性:

cookie: fbcookie=value

Chrome中有网络调试信息: enter image description here

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

1 个答案:

答案 0 :(得分:4)

不,这是您无能为力的事情。这不是您的 cookie,它是Facebook设置的一个cookie,对域有效。

Facebook必须修复此问题,您可以放心,他们会及时进行修复,否则可能会破坏许多站点上的登录功能。