【发布时间】:2020-06-05 18:53:09
【问题描述】:
我正在尝试解决我从 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 登录网络 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
如果在 facebook.com 上再次设置它,我会预料到这一点,因为我在警告中看到“http://www.facebook.com/”而不是关于我的网站 blabla.bla。有没有办法摆脱警告?另一个问题:Chrome 更改政策后功能会受到影响吗?我想在不更改浏览器设置的情况下做到这一点。该网站的用户不太可能进行任何更改以摆脱浏览器中的任何安全修复程序。
【问题讨论】:
标签: php facebook http web samesite