【问题标题】:How can I resolve a cross-site Google Analytics cookie `SameSite=None` warning in Chrome on Apache 2.4 and PHP 7.1?如何在 Apache 2.4 和 PHP 7.1 上的 Chrome 中解决跨站点 Google Analytics cookie `SameSite=None` 警告?
【发布时间】:2020-02-10 07:08:48
【问题描述】:

我客户的网站在 Chrome 中收到这些 SameSite cookie 警告。我已经搜遍了,我无法让警告消失。这些 cookie 是由于 Wordpress 网站上的 Google 广告转换跟踪。出于兼容性原因,该站点位于运行 PHP 7.1 的 DreamHost 托管的 Apache/2.4.7 (Ubuntu) 上。在我的 .htaccess 文件中,我尝试添加:

Header always edit Set-Cookie (.*) "$1; SameSite=None"

我试过了

Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure

...我试过了

Header always edit Set-Cookie (.*) "$1; SameSite=None;Secure"

以及许多其他组合,包括 SameSite=Lax

一份指南推荐用于 PHP 7.2 及以下版本:

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

但这给了我一个500 Internal Server Erorr

但我仍然收到以下三个错误:

在没有 SameSite 属性的情况下设置了与跨站点资源关联的 cookie。未来版本的 Chrome 将仅通过设置为 SameSite=NoneSecure 的跨站点请求传递 cookie。您可以在 Application>Storage>Cookies 下的开发人员工具中查看 cookie,并在 和 处查看更多详细信息。

(index):1 与http://doubleclick.net/ 的资源关联的cookie 设置为SameSite=None,但没有Secure。未来版本的 Chrome 将仅提供标记为 SameSite=None 的 cookie,前提是它们也标记为 Secure。您可以在 Application>Storage>Cookies 下的开发人员工具中查看 cookie,并在 https://www.chromestatus.com/feature/5633521622188032 上查看更多详细信息。

(index):1 与http://google.com/ 的资源关联的cookie 设置为SameSite=None,但没有Secure。未来版本的 Chrome 将仅提供标记为 SameSite=None 的 cookie,前提是它们也标记为 Secure。您可以在 Application>Storage>Cookies 下的开发人员工具中查看 cookie,并在 https://www.chromestatus.com/feature/5633521622188032 上查看更多详细信息。

在我的研究中,关于警告的信息似乎有限,并且在可用的指南中,我不确定是否必须按名称识别 cookie 或如何从源头修复 cookie/标头。

【问题讨论】:

    标签: php apache cookies header samesite


    【解决方案1】:

    我会查看跟踪器脚本。这是gtag.js 文档中关于跨域流量的部分。确保只有域存在,没有 www、http 等。

    gtag('set', 'linker', {
      'domains': ['example.com', 'example-b.com']
    });
    

    【讨论】:

      【解决方案2】:

      您尝试过以下方法吗?

      Header Set Access-Control-Allow-Origin "*"
      Header Set Access-Control-Allow-Credentials: true
      Header set Set-Cookie: "ACookieAvailableCrossSite; SameSite=None; Secure"
      

      控制台警告并不意味着任何东西都必然被破坏。您的网站继续按预期运行。

      希望此链接对您有所帮助。 Samesite-cookies-ByDefault

      【讨论】:

      • 你在哪里说 ACookieAvailableCrossSite,我假设我不使用这个实际术语?我有大约 10 个与 google 名称相关的 cookie 名称,我需要添加每个吗?该语法是什么样的?
      • Access-Control-Allow- 用于跨站点 cookie。正如您在第一行看到的,它允许所有域。所以你不需要添加每一个。
      • 大部分网站都有同样的问题。我希望它会由谷歌自己修复。只需查看 google chrome 上 stackoverflow 的控制台警告。在那里你可以看到同样的警告。
      【解决方案3】:

      我在发布similar question on their github page 后收到了来自 Google Chrome 实验室的回复。

      触发警告的 cookie 来自 google.com,因此您将无法更改它们。广告团队已意识到这些问题,并正在努力在 2020 年 2 月的稳定日期之前修复他们的 cookie。这也意味着您指定的任何标头指令都不会影响 google.com cookie,它只会覆盖为您的网站设置的 cookie。

      如果您有任何专门列出您控制的域的 cookie 警告,那么您需要添加正确的属性。 -rowan-m

      【讨论】:

      • 他们显然失败了,因为现在是 2020 年 9 月,错误仍然出现......
      猜你喜欢
      • 2020-04-19
      • 2020-02-02
      • 1970-01-01
      • 2020-02-03
      • 2020-02-01
      • 1970-01-01
      • 2020-02-04
      相关资源
      最近更新 更多