Как исправить предупреждение "установить для SameSite cookie значение none"? Расширение Chrome

Я создал расширение Chrome и из popup.js я назвал PHP-скрипт (Using Xhttprequest), который читает cookie. Вот так:

$cookie_name = "mycookie";

if(isset($_COOKIE[$cookie_name]))
{
    echo $_COOKIE[$cookie_name];
}
else{
    echo "nocookie";
}

Но я получаю это предупреждение при ошибках в расширениях.

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

Я пытался создать такой файл cookie, но это не помогло.

setcookie($cookie_name,$cookie_value, time() + 3600*24, "/;samesite=None ","mydomain.com", 1);

Следуя инструкциям из этого вопроса.

Ответы

Ответ 1

Я тоже в "методе проб и ошибок", но этот ответ от Github из Google Chrome Labs мне немного помог. Я определил его в свой основной файл, и он работал - хорошо, только для одного стороннего домена. Все еще делаю тесты, но мне не терпится обновить этот ответ лучшим решением :)

Если у вас PHP до 7.2, как у моего сервера:

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

Или, если ваш хост уже обновлен до 7.3, вы можете использовать:

setcookie('cross-site-cookie', 'name', ['samesite' => 'None', 'secure' => true]);

Еще одна вещь, которую вы можете попробовать проверить куки, это включить флаг ниже, который, по их собственным словам, "добавит предупреждающие сообщения консоли для каждого куки, потенциально затронутого этим изменением":

chrome://flags/#cookie-deprecation-messages

Смотрите весь код по адресу: https://github.com/GoogleChromeLabs/samesite-examples/blob/master/php.md, у них также есть код для same-site-cookies.

Ответ 2

По мере появления новой функции файлы cookie SameSite=None также должны быть помечены как Secure, иначе они будут отклонены.

Дополнительную информацию об изменениях в обновлениях хрома и в этом блоге можно найти

.Примечание: не совсем напрямую связано с вопросом, но может быть полезно для других, кто попал сюда, так как это было моей заботой вначале при разработке моего сайта:

если вы видите предупреждение из вопроса, в котором перечислены некоторые сторонние сайты (в моем случае это был google.com, да) - это означает, что они должны это исправить, и это никак не связано с вашим сайтом. Конечно, если в предупреждении не упоминается ваш сайт, в этом случае добавление Secure должно исправить это.