Атрибут cookie SameSite

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

Типы файлов cookie

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

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

Файлы cookie и HTTP-запросы

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

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

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

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

Атрибуты cookie SameSite перечислены ниже.

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

Вкладки, диалоговые окна и расширения сообщений

  • Вкладки Teams используют <iframes> для внедрения содержимого, просматриваемого на верхнем уровне или в контексте первой стороны.
  • Диалоговые окна (называемые модулями задач в TeamsJS версии 1.x) позволяют создавать модальные всплывающие окна в приложении 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.

Примечание.

  • При необходимости объявите основные файлы cookie как SameSite=Lax или SameSite=Strict.
  • Сторонние файлы cookie следует объявить как SameSite=None; Secure.

Дополнительные ресурсы