如何解决`SameSite`属性


9

我看着控制台,注意到这些警告

设置了与http://google.com/上的跨站点资源关联的cookie ,但未设置SameSite属性。如果将跨站点请求的Cookie设置为SameSite = None和Secure,则将来的Chrome版本将仅提供具有跨站点请求的cookie。您可以在“应用程序”>“存储”>“ Cookies”下的开发人员工具中查看Cookie,并在https://www.chromestatus.com/feature/5088147346030592https://www.chromestatus.com/feature/5633521622188032上查看更多详细信息。

怎么解决呢?



请参阅:web.dev/samesite-cookies-explained 可能与您的域名和TLD有关。
vS12

@ vS12会在我的代码开头添加它吗?github.com/GoogleChromeLabs/samesite-examples/blob/master/…–
Tiago

我猜是这样,因为它是在请求的标头中设置的。
vS12

细微的文本编辑以确保清晰度
Tedinoz

Answers:


3

一个对我有用的解决方案:

如果您使用的是PHP,请将此行添加到开头

header('Set-Cookie: cross-site-cookie=name; SameSite=None; Secure');


更新 此处是有用的资源,包括JavaScript,Node.js,PHP和Python中的示例
https://github.com/GoogleChromeLabs/samesite-examples


4
仍在继续。我将代码放在index.php文件的开头,并且错误仍然继续。
Tiago19年

这对于未更改Cookie设置的外部资源将不起作用。见github.com/GoogleChromeLabs/samesite-examples/issues/...
麦克Kormendy

3

在Google的开发人员/管理员(以及其他外部资源的开发人员/管理员)修改其脚本/服务器以将必要的cookie设置包括到网站包含它们时生成的cookie之前,您将无能为力。请参阅此处更多信息:

https://github.com/GoogleChromeLabs/samesite-examples/issues/4#issuecomment-548598318

如果您要调试网站,则可以通过在过滤器框中添加以下过滤器来暂时忽略Chrome开发人员工具控制台中的那些条目:

-SameSite=None

例如:

Chrome开发人员工具控制台中的-SameSite = None过滤器的示例


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.