Объяснение работы SameSite cookies
Сегодня столкнулся с новым атрибутом cookie SameSite
. На web.dev
есть хорошая статья про то, зачем о нужен и какую проблему решает — "SameSite cookies explained".
Cookie пользователей отправляются на сервер при любых запросах, даже если запрашивается статический ресурс с чужого сервера. Например если страница сайта site.com
содержит изображение сайта site.net
, при запросе изображения в запросе будут отправлены все куки пользователя для site.net
. Чтобы ограничить отправку кук только тому сайту, которому они принадлежат (first-party) можно воспользоваться новым атрибутом SameSite
.
Этот атрибут может содержать несколько параметров:
— Strict
— ограничить отправку cookie только first-party;
— Lax
— тоже что и Strict
+ отправлять куки при переходе на другой сайт;
— None
— не ограничивать отправку cookie (будет работать только с Secure
).
Предположительно с версии Chrome 80 (февраль 2020) все куки без атрибута SameSite
будут интерпретироваться как если бы для них был установлен SameSite=Lax
. Поэтому если вы используете cookie, которые должны отправляться при любых запросах, для них необходимо явно установить SameSite=None
.