Атрибут cookie SameSite

Cookies — это текстовые строки, отправленные с веб-сайтов и хранимые на компьютере в веб-браузере. Они используются для проверки подлинности и персонализации. Например, файлы cookie используются для отзыва сведений о состоянии, сохранения параметров пользователя, записи просмотра и отображения соответствующих объявлений. Файлы cookie всегда связаны с определенным доменом и устанавливаются различными сторонами.

Типы файлов cookie

Типы файлов cookie и соответствующие области:

Cookie Область
Первое куки участника Первое стороное cookie создается веб-сайтами, которые посещает пользователь. Он используется для сохранения данных, например элементов корзины покупок, входа в учетные данные. Например, файлы cookie проверки подлинности и другие аналитические данные.
Cookie второй стороны Cookie второй стороны технически то же самое, что и первое стороне cookie. Разница заключается в том, что данные делятся со второй стороной через соглашение о партнерстве с данными. Например, Microsoft Teams аналитики и отчетности.
Cookie сторонних сторон Файл cookie сторонних пользователей устанавливается доменом, помимо домена, который явно посещал пользователь, и используется в основном для отслеживания. Например, "Как кнопки", "служба" и "чаты в прямом эфире".

Запросы cookie и HTTP

Перед введением ограничений SameSite файлы cookie хранились в браузере. Они были присоединены к каждому веб-запросу HTTP и отправлены на сервер с помощью Set Cookie загона http-ответа. Этот метод ввел уязвимости безопасности, такие как подделка запросов на сайте, называемые атаками CSRF. Компонент SameSite сократил экспозицию за счет реализации и управления в загоне SetCookie.

Версия 51 Google Chrome представила SetCookie SameSite спецификацию как необязательный атрибут. Начиная с сборки 17672, Windows 10 поддерживает файлы cookie SameSite для Microsoft Edge браузера.

Вы можете отказаться от добавления атрибута cookie SameSite в заготвку или добавить его с одним из двух SetCookie параметров, Lax и Strict. Невыполнение атрибута SameSite считалось состоянием по умолчанию.

Chrome 80, выпущенный в феврале 2020 г., вводит новые значения cookie и вводит политики cookie по умолчанию. Три значения передаются в обновленный атрибут SameSite: Strict, Lax или None. Если не указано, атрибут Cookie SameSite принимает значение SameSite=Lax по умолчанию.

Атрибуты cookie SameSite следуют следующим образом:

Параметр Правоприменители Значение Спецификация атрибута
Лакс Файлы cookie отправляются автоматически только в контексте первой стороны и с запросами HTTP GET. Файлы cookie SameSite удерживаются во всех запросах на подзапев сайта, таких как вызовы для загрузки изображений или iframes. Они отправляются, когда пользователь переходит на URL-адрес с внешнего сайта, например, следуя ссылке. По умолчанию Set-Cookie: key=value; SameSite=Lax
Strict Браузер отправляет файлы cookie только для первых запросов контекста сторон. Это запросы, исходимые из сайта, за набором cookie. Если запрос возник из другого URL-адреса, чем текущего расположения, ни одно из файлов cookie, помеченных атрибутом, не Strict отправляется. Необязательный Set-Cookie: key=value; SameSite=Strict
Нет Файлы cookie отправляются как в первом контексте сторон, так и в запросах на перекрестное происхождение; однако значение должно быть явно за установлено, и все запросы браузера должны следовать None протоколу HTTPS и включать атрибут, для которого требуется Secure зашифрованное подключение. Файлы cookie, которые не соблюдают это требование, отклоняется.
Оба атрибута требуются вместе. Если задан без протокола HTTPS или если он не используется, то сторонние None Secure файлы cookie отклоняется.
Необязательный, но если установлено, протокол HTTPS необходим. Set-Cookie: key=value; SameSite=None; Secure

Teams последствий и корректировок

  1. Включить соответствующий параметр SameSite для файлов cookie и проверить, что приложения и расширения продолжают работать в Teams.
  2. Если ваши приложения или расширения сбой, сделать необходимые исправления до выпуска Chrome 80.
  3. Внутренние партнеры Майкрософт могут присоединиться к следующей группе, чтобы получить дополнительные сведения или помочь в этом вопросе: https://teams.microsoft.com/l/team/19%3A08b594cd465e4c0491fb751e823802e2%40thread.skype/conversations?groupId=4d6d04cd-dbf0-43c8-a2ff-f80dd38be034&tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47 .

Примечание

Необходимо установить атрибуты SameSite для отражения предназначенного использования для файлов cookie. Не полагаться на поведение браузера по умолчанию. Дополнительные сведения см. в статью Developers: Get Ready for New SameSite=None; Безопасные файлы cookie Параметры.

Вкладки, модули задач и расширения обмена сообщениями

  • Teams вкладки используются для встраивки контента, который просматривается на верхнем <iframes> уровне или в контексте первой стороны.
  • Модули задач позволяют создавать модальные всплывающие окна в приложении Teams. Как и вкладка, внутри текущей страницы открывается модальный окне.
  • Расширения обмена сообщениями позволяют вставлять обогащенный контент в сообщение чата из внешних ресурсов.

Любые файлы cookie, используемые встроенным контентом, считаются сторонними, если сайт отображается в <iframe> . Кроме того, если удаленные ресурсы на странице зависят от файлов cookie, отосланных с запросом и тегами, внешними шрифтами и персонализированным контентом, необходимо убедиться, что они помечены для использования на межу сайте, например или для обеспечения на месте <img> <script> SameSite=None; Secure отката.

Проверка подлинности

Для этого необходимо использовать поток проверки подлинности на основе веб-сайтов:

  • Встроенные страницы контента в вкладки.
  • Страница конфигурации, модуль задач и расширение обмена сообщениями.
  • Разговорный бот с модулем задач.

В соответствии с обновленными ограничениями SameSite браузер не добавляет cookie на уже заверяемую проверку подлинности веб-сайт, если ссылка происходит из внешнего сайта. Необходимо убедиться в том, что файлы cookie проверки подлинности помечены для использования на разных веб-узлах, или обеспечить, чтобы произошла SameSite=None; Secure откатка.

Android System WebView

Android WebView — это системный компонент Chrome, который позволяет приложениям Android отображать веб-контент. Несмотря на то, что новые ограничения по умолчанию, начиная с Chrome 80, они применяются не сразу в WebViews. Они будут применяться в будущем. Чтобы подготовиться, Android позволяет родным приложениям устанавливать файлы cookie непосредственно через API CookieManager.

Примечание

  • Вы должны объявить первой стороне cookies, SameSite=Lax как или , по мере SameSite=Strict необходимости.
  • Вы должны объявить сторонние файлы cookie как SameSite=None; Secure .

См. также