Четверг, 16 января 2020 г.
Это кросс-пост из
Chromium developer blog
и он касается того, как изменения в Chrome могут повлиять на работу вашего веб-сайта для ваших пользователей в будущем.
В мае Chrome объявил
о модели, безопасной по умолчанию для файлов cookie, которая обеспечивается новой системой классификации файлов cookie
(спецификация). Эта
инициатива
является частью наших постоянных усилий по улучшению конфиденциальности и безопасности в Интернете.
Chrome планирует внедрить новую модель с выходом Chrome 80 в феврале 2020 года. Mozilla и Microsoft также выразили намерение внедрить новую модель в Firefox и Edge в соответствии со своими собственными графиками. Хотя до изменений в Chrome еще несколько месяцев, важно, чтобы разработчики, управляющие файлами cookie, оценили свою готовность уже сегодня. В этом блоге описаны концепции высокого уровня; пожалуйста, ознакомьтесь с
SameSite Cookies Explained на web.dev для получения руководства для разработчиков.
Понимание контекста Cross-Site и Same-Site файлов cookie
Веб-сайты обычно интегрируют внешние службы для рекламы, рекомендаций контента, сторонних виджетов, социальных вставок и других функций. Когда вы просматриваете веб-страницы, эти внешние службы могут сохранять файлы cookie в вашем браузере и впоследствии получать к ним доступ для предоставления персонализированного опыта или измерения вовлеченности аудитории. У каждого файла cookie есть связанный с ним домен. Если домен, связанный с файлом cookie, совпадает с внешней службой, а не с веб-сайтом в адресной строке пользователя, это считается контекстом cross-site (или “сторонним”).
К менее очевидным случаям использования cross-site относятся ситуации, когда организация, владеющая несколькими веб-сайтами, использует файл cookie на этих ресурсах. Хотя одна и та же организация владеет файлом cookie и веб-сайтами, это все равно считается контекстом cross-site или “сторонним”, если домен файла cookie не совпадает с сайтом(ами), с которого осуществляется доступ к файлу cookie.

Когда внешний ресурс на веб-странице обращается к файлу cookie, который не совпадает с доменом сайта, это контекст cross-site или “сторонний”.
Напротив, доступ к файлам cookie в контексте
same-site (или “первой стороны”) происходит, когда домен файла cookie совпадает с доменом веб-сайта в адресной строке пользователя. Файлы cookie same-site обычно используются для поддержания входа пользователей на отдельные веб-сайты, запоминания их предпочтений и поддержки аналитики сайта.

Когда ресурс на веб-странице обращается к файлу cookie, который совпадает с сайтом, который посещает пользователь, это контекст same-site или “первой стороны”.
Новая модель безопасности и прозрачности файлов cookie
Сегодня, если файл cookie предназначен для доступа только в контексте первой стороны, у разработчика есть возможность применить одну из двух настроек (SameSite=Lax или
SameSite=Strict), чтобы предотвратить внешний доступ. Однако очень немногие разработчики следуют этой рекомендуемой практике, оставляя большое количество файлов cookie same-site без необходимости подверженными таким угрозам, как атаки
Cross-Site Request Forgery
.
Чтобы защитить больше веб-сайтов и их пользователей, новая модель, безопасная по умолчанию, предполагает, что все файлы cookie должны быть защищены от внешнего доступа, если не указано иное. Разработчики должны использовать новую настройку файлов cookie, SameSite=None, чтобы назначить файлы cookie для доступа cross-site. Когда присутствует атрибут SameSite=None , необходимо использовать дополнительный атрибут Secure, чтобы к файлам cookie cross-site можно было получить доступ только через HTTPS-соединения. Это не устранит все риски, связанные с доступом cross-site, но обеспечит защиту от сетевых атак.
Помимо непосредственных преимуществ безопасности, явное объявление файлов cookie cross-site обеспечивает большую прозрачность и выбор пользователя. Например, браузеры могут предложить пользователям детальные элементы управления для управления файлами cookie, к которым обращается только один сайт, отдельно от файлов cookie, к которым обращаются несколько сайтов.
Принудительное применение Chrome с февраля 2020 года
Начиная с Chrome 80 в феврале, Chrome будет рассматривать файлы cookie, у которых нет объявленного значения SameSite, как файлы cookie
SameSite=Lax . Только файлы cookie с настройкой
SameSite=None; Secure будут доступны для внешнего доступа при условии, что к ним обращаются через безопасные соединения. Трекеры статуса платформы Chrome для
SameSite=None
и
Secure
будут продолжать обновляться с последней информацией о запуске.
Mozilla подтвердила свою поддержку новой модели классификации файлов cookie своим
намерением внедрить
требования SameSite=None; Secure для файлов cookie cross-site в Firefox. Microsoft недавно
объявила
о планах начать внедрение модели, начиная с эксперимента в Microsoft Edge 80.
Как подготовиться; Известные сложности
Если вы управляете файлами cookie cross-site, вам нужно будет применить настройку SameSite=None; Secure к этим файлам cookie. Внедрение должно быть простым для большинства разработчиков, но мы настоятельно рекомендуем вам начать тестирование прямо сейчас, чтобы выявить сложности и особые случаи, такие как следующие:
- Не все языки и библиотеки еще поддерживают значение None, что требует от разработчиков установки заголовка cookie напрямую. Этот GitHub repository
предоставляет инструкции по внедрениюSameSite=None; Secureна различных языках, библиотеках и фреймворках. - Некоторые браузеры, включая некоторые версии Chrome, Safari и UC Browser, могут обрабатывать значение
Noneнепредвиденным образом, что требует от разработчиков кодирования исключений для этих клиентов. Это включает Android WebViews, работающие на старых версиях Chrome. Вот список известных
несовместимых клиентов. - . Разработчикам приложений рекомендуется объявить соответствующие настройки
SameSite cookie
для AndroidWebViewsна основе версий Chrome, которые совместимы со значениемNone, как для файлов cookie, к которым обращаются через заголовки HTTP(S), так и через Android
WebView‘s
CookieManager API,
хотя новая модель будет принудительно применена в Android WebView позднее. - Корпоративным ИТ-администраторам может потребоваться внедрить специальные политики
для временного возврата браузера Chrome к прежнему поведению, если некоторые службы, такие как единый вход (SSO) или внутренние приложения, не готовы к февральскому запуску. - Если у вас есть файлы cookie, к которым вы обращаетесь как в контексте первого, так и третьего лица, вы можете рассмотреть
использование отдельных файлов cookie, чтобы получить преимущества безопасностиSameSite=Lax
в контексте первого лица.
Разъяснение файлов cookie SameSite
предлагает конкретные рекомендации для вышеуказанных ситуаций, а также каналы для решения проблем и вопросов.
Чтобы протестировать влияние нового поведения Chrome на ваш сайт или файлы cookie, которыми вы управляете, вы можете перейти по адресу
chrome://flags в Chrome 76+ и включить эксперименты
“SameSite by default cookies” и
“Cookies without SameSite must be secure“. Кроме того,
эти эксперименты будут автоматически включены для части пользователей Chrome 79 Beta. Некоторые пользователи
Beta с включенными экспериментами могут столкнуться с проблемами совместимости со службами, которые
еще не поддерживают новую модель; пользователи могут отказаться от участия в экспериментах Beta, перейдя по адресу
chrome://flags и отключив их.
Если вы управляете файлами cookie, к которым осуществляется доступ только в контексте одного сайта (same-site cookies), от вас
не требуется никаких действий; Chrome автоматически предотвратит доступ к этим файлам cookie со стороны
внешних сущностей, даже если атрибут SameSite отсутствует или значение не задано.
Тем не менее, мы настоятельно рекомендуем вам применить соответствующее значение SameSite (Lax или Strict) и не
полагаться на поведение браузера по умолчанию, поскольку не все браузеры защищают файлы cookie одного сайта по умолчанию.
Наконец, если вы беспокоитесь о готовности поставщиков и других сторон, предоставляющих услуги для
вашего веб-сайта, вы можете проверить предупреждения в консоли инструментов разработчика в Chrome 77+, если страница
содержит межсайтовые файлы cookie, в которых отсутствуют необходимые настройки:

Некоторые поставщики (включая некоторые службы Google) внедрят необходимые изменения в
месяцы, предшествующие выходу Chrome 80 в феврале; возможно, вам стоит связаться со своими партнерами, чтобы
подтвердить их готовность.
Как мы это применяем
Google announcements age. We keep this post here for the record, and we note for clients whether the behaviour it describes still applies today or has since been superseded.
Связанные услуги