Как я могу разрешить межсайтовое предупреждение файла cookie Google Analytics «SameSite = None» в Chrome на Apache 2.4 и PHP 7.1?


14

Веб-сайт моего клиента получает эти предупреждения о файлах cookie SameSite в Chrome. Я искал все, и я не могу получить предупреждения, чтобы уйти. Файлы cookie создаются благодаря отслеживанию конверсий объявлений Google на сайте Wordpress. Сайт работает на Apache / 2.4.7 (Ubuntu), размещенном на DreamHost, и работает на PHP 7.1 по соображениям совместимости. К моему файлу .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.

Тем не менее, я все еще получаю следующие три ошибки:

Файл cookie, связанный с межсайтовым ресурсом at, был установлен без SameSiteатрибута. В будущем выпуске Chrome файлы cookie будут отправляться только с межсайтовыми запросами, если они установлены с помощью SameSite=Noneи Secure. Вы можете просмотреть файлы cookie в инструментах разработчика в разделе «Приложение»> «Хранилище»> «Файлы cookie» и просмотреть более подробную информацию по адресу и.

(индекс): 1 Файл cookie, связанный с ресурсом по адресу http://doubleclick.net/, был установлен с, SameSite=Noneно без него Secure. В будущем выпуске Chrome файлы cookie будут помечены только в том SameSite=Noneслучае, если они также помечены Secure. Вы можете просмотреть файлы cookie в инструментах разработчика в разделе «Приложение»> «Хранилище»> «Файлы cookie» и ознакомиться с более подробной информацией по адресу https://www.chromestatus.com/feature/5633521622188032 .

(индекс): 1 Файл cookie, связанный с ресурсом по адресу http://google.com/, был установлен с, SameSite=Noneно без Secure. В будущем выпуске Chrome файлы cookie будут помечены только в том SameSite=Noneслучае, если они также помечены Secure. Вы можете просмотреть файлы cookie в инструментах разработчика в разделе «Приложение»> «Хранилище»> «Файлы cookie» и ознакомиться с более подробной информацией по адресу https://www.chromestatus.com/feature/5633521622188032 .

В моем исследовании, кажется, есть ограниченная информация о предупреждении, и в доступных руководствах я не уверен, должен ли я идентифицировать cookie по имени или как исправить cookie / заголовки в их источнике.

Ответы:


10

Я получил ответ от Google Chrome Labs после того, как разместил аналогичный вопрос на их странице github .

Файлы cookie, которые вызывают предупреждение, поступают с google.com, поэтому вы не сможете их изменить. Рекламная команда знает об этих проблемах и работает над исправлением своих файлов cookie до стабильной даты февраля 2020 года. Это также означает, что ни одна из указанных вами директив заголовка не повлияет на файл cookie google.com, а только на файлы cookie, установленные для вашего сайта.

Если у вас есть какие-либо предупреждения о файлах cookie, в которых конкретно указан домен, которым вы управляете, вам нужно будет добавить правильные атрибуты. - рябина-м


1

Я бы посмотрел на скрипт трекера. Вот раздел о междоменном трафике в документации gtag.js. Убедитесь, что присутствует только домен, а не www, http, ect.

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

0

Вы пробовали следующее?

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

Предупреждение консоли не означает, что что-то обязательно сломано. Ваш сайт продолжает работать как положено.

Надеюсь, эта ссылка поможет вам. Samesite-печенье-ByDefault


Где вы говорите ACookieAvailableCrossSite, я предполагаю, что я не использую этот фактический термин? У меня около 10 имен файлов cookie, связанных с именем Google. Нужно ли добавлять каждое из них? Как будет выглядеть этот синтаксис?
Бенсон

Access-Control-Allow- используется для межсайтовых файлов cookie. Как видно из первой строки, он разрешает все домены. Так что вам не нужно добавлять каждый из них.
Кришнан

1
Большая часть сайта имеет ту же проблему. Я надеюсь, что это будет исправлено самим Google. Достаточно взглянуть на предупреждение консоли от stackoverflow в Google Chrome. Там вы можете увидеть то же предупреждение.
Кришнан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.