Как подготовить сайт к обновлениям Privacy Sandbox | robot_dreams
Для отслеживания статуса заказа — авторизируйтесь
Введите код, который был выслан на почту Введите код с SMS, который был выслан на номер
 
Код действителен в течение 5 минут Код с sms действителен в течение 5 минут
Вы уверены, что хотите выйти?
Сеанс завершен
На главную
Отказываемся от печенья: как подготовить сайт к обновлениям Privacy Sandbox

Отказываемся от печенья: как подготовить сайт к обновлениям Privacy Sandbox

Конспект выступления с Google I/O.

В мае прошла ежегодная конференция Google I/O 2023. На ней Product Manager по направлению Privacy Sandbox Хелен Чо (Helen Cho) и Engineering Manager Privacy Sandbox Каустубха Говинд (Kaustubha Govind) рассказали о последних изменениях в технологии — поэтапном отказе от файлов cookies и отслеживании пользователей при переходе с одного сайта на другой.

Каких изменений ожидать в ближайшее время и как к ним подготовиться — читайте в конспекте выступления.

Product Manager Privacy Sandbox Хелен Чо (сверху) и Engineering Manager Privacy Sandbox Каустубха Говинд (Kaustubha Govind) (снизу)

Что не так с cookies

Хотя они являются критически важной составляющей для функциональности интернета, cookies известны тем, что создают проблемы с конфиденциальностью и безопасностью. Поэтому разработчики Chrome работают над новыми правилами Privacy Sandbox, охватывающими поэтапный отказ от посторонних файлов cookies. То есть в какой-то момент Chrome полностью прекратит их поддержку.

Конечная цель Google — создать такой набор стандартов для Chrome и Android, который будет отвечать потребностям интернет-экосистемы и приложений.

На сегодня разработчикам уже удалось достичь определенного прогресса в снижении вектора отслеживания:

Чем ближе момент, когда Chrome полностью откажется от cookies, тем более важны инструменты, необходимые для подготовки сайтов к нововведениям.

Готовим сайт к жизни без cookies

Шаг 1: Определяем сторонние файлы cookies

Файлы cookies могут быть сторонними или собственными в зависимости от контекста пользователя и того, на каком сайте он находится. Эта разница не всегда очевидна, но обычно сторонними файлами cookies называют файлы cookies, которые отправляются в контексте межсайтовых запросов, таких как iframe или запросы подресурсов.

Определить их можно двумя способами.

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

  • Откройте окно с помощью комбинации клавиш Ctrl + Shift + I, перейдите на вкладку Network и откройте свой сайт.
  • Вы можете отфильтровать посторонние запросы, установив соответствующий флажок. Выберите определенный запрос и щелкните вкладку Cookies.
  • Выделите поле, чтобы отобразить отфильтрованные cookies-файлы запроса, — это позволит вам увидеть, какие файлы cookies были заблокированы в запросе или ответе.

Если вы блокируете посторонние файлы cookies, вы увидите подсказку, указывающую на конфигурацию пользователя как причину блокировки файлов cookies. Например: «Этот файл cookies был заблокирован из-за пользовательских настроек»::

Для лучшего понимания и ориентации в инструментах разработчика читайте инструкцию. Она постоянно обновляется — в зависимости от прогресса проекта Privacy Sandbox.

Второй способ обнаружения сторонних файлов cookies — анализ кода. С 2019 года Chrome изменил механизм обработки файлов, ограничивая доступ к файлам cookies только первыми сторонами по умолчанию.

Это означает, что можно определить любые файлы cookies, используемые в контексте с третьими сторонами, с помощью атрибута SameSite=None. Поищите его в коде с помощью Ctrl+F:

Шаг 2: Анализируем, зачем вам cookies

Анализ, как и почему сторонние файлы cookies используются на вашем сайте, поможет вам понять, какие инструменты вам нужно будет применить, чтобы от них отказаться.

Обычно сторонние файлы cookies обеспечивают возможность группирования контента и услуг. К примеру, именно с помощью cookies строится общая система авторизации для сайтов одного бренда или сайтов определенной страны.

Также распространенным вариантом использования сторонних файлов cookies является привлечение сторонних библиотек или сервисов.

Шаг 3: Внедряем инструменты Google

Разработчики Chrome пытаются определить критические ситуации при использовании новой технологии, а также варианты решения возможных проблем. Уже сегодня для подготовки сайтов к жизни без cookies они предлагают два инструмента.

CHIPS

Рассмотрим кейс, когда веб-сайт содержит встроенную карту с обозначенными на ней местоположениями магазинов или виджет для общения клиентов со службой поддержки.

В этом случае поставщик услуг должен сохранять файлы cookies или состояние (например, выбранные пользователем предпочтения магазина на карте) для каждого веб-сайта верхнего уровня. Вот здесь и пригодится инструмент (Cookies Having Independent Partitioned State).

Все, что нужно сделать, — добавить в файл cookies атрибут Partitioned. К примеру:

Set-Cookie: fav_store=123; SameSite=None; Secure; Partitioned

Тогда ваш межсайтовый файл cookie будет автоматически получать различные файлы cookies на каждом веб-сайте верхнего уровня, где он встроен. Другими словами, каждый сайт верхнего уровня будет иметь свой собственный файл cookie с уникальными данными, касающимися именно этого конкретного сайта. Это предотвращает возможность отслеживания пользователей на разных веб-сайтах.

Важно! Благодаря CHIPS не нужно будет ждать, пока сторонние файлы cookies будут постепенно отключены, чтобы переключить сайт на использование новой технологии. Браузеры игнорируют атрибуты файлов cookies, которые они не узнают. Поэтому ваши файлы cookies продолжат работать на клиентах, не поддерживающих CHIPS.

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

  • Было снято требование к именованию префикса хоста и ограничению по имени хоста. Хотя первоначальная цель этого требования заключалась в том, чтобы содействовать наилучшим практикам безопасности, многие разработчики отметили в обратной связи, что сейчас они повторно используют файлы cookies в поддоменах, и такое требование усложнит имплементацию технологии.
  • Вместо предварительного ограничения в 10 файлов cookies на раздел было установлено ограничение динамической памяти в 10 кБ на раздел. Это позволит разработчикам использовать небольшое количество больших файлов cookies или большое количество малых файлов cookies.

Подробнее про использование CHIPS можно прочитать тут.

FPS

В настоящее время браузер Chrome использует предел на уровне сайта (т. е. в зависимости от домена, на котором выполняется JavaScript-код), чтобы интерпретировать собственные и сторонние ресурсы. Когда он прекратит поддержку сторонних файлов cookies, такая интерпретация может быть ограничительной для организаций, которые полагаются на файлы cookies сторонних доменов из-за архитектуры своих веб-сайтов, разработанной для использования нескольких доменов.

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

Для решения подобных случаев создали FPS.

FPS (First Party Sets — наборы первой стороны, или собственные наборы) — это фреймворк для разработчиков, позволяющий объявлять связи между доменами. Браузер предоставляет доступ на основе отношений сторонних доменов к домену первой стороны.

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

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

  • Первое подмножество предназначено для доменов верхнего уровня с кодами стран. Например, если у вас есть сайты example.com для США, example.ca для Канады и example.de для Германии, вы можете объединить их в одно подмножество, чтобы обеспечить доступ к общим сервисам и инфраструктуре. Файлы cookies и данные могут передаваться между этими сайтами, сохраняя функциональность пользователя.
  • Второе подмножество — для сервисных доменов. В этом подмножестве вы можете определить домены, от которых ваша организация зависит с точки зрения безопасности или производительности и которым требуется доступ к личности пользователя для выполнения своих функций.
  • Третье подмножество — для связанных доменов. Ваша организация может поддерживать несколько сайтов для различных связанных брендов или продуктов, и вам может понадобиться отслеживать пользовательский маршрут по связанным сайтам, чтобы лучше понять, как взаимодействуют с вашими сайтами пользователи, или чтобы помнить состояние входа пользователя на связанном сайте, полагаясь на ту же инфраструктуру для входа в систему.

Для доменов внутри подмножества доступ к файлам cookies сторонних доменов упрощается с помощью интерфейса доступа к хранилищу (Storage Access API), представляющего механизм активного запроса доступа к файлам cookies сайта в контексте третьей стороны.

Для решения некоторых ограничений интерфейса доступа к хранилищу введен также интерфейс запроса доступа к хранилищу (request storage access 4 API) — например, когда API может вызываться только из iframe. Если браузер получает запрос через интерфейс storage access API или request storage access 4 API, он подтверждает, что сторонний домен и домен первой стороны находятся в одном подмножестве, и разрешает запрос на доступ.

Важно! Интерфейс доступа к хранилищу также поддерживается в других браузерах, таких как Safari и Firefox.

Для пользователя наборы первой стороны (first party sets) будут «связанными сайтами в группе». На основе списка наборов первой стороны пользователи могут включать и исключать возможность управления доступом браузера Chrome. Кроме того, они видят, входит ли посещаемый ими сайт в набор первой стороны и какие другие сайты этого набора они уже посещали. Таким образом пользователи получают информацию о том, какие сайты связаны между собой и принадлежат к одной группе наборов первой стороны.

Вывод

Chrome движется путем постепенного отказа от сторонних файлов cookies. Вот что нужно сделать, чтобы быть готовым к предстоящим изменениям в Chrome:

  • используйте инструменты разработчика (DevTools) или ищите SameSite=None-cookies, чтобы определить, зависит или не зависит ваш веб-сайт от файлов cookies третьих сторон;
  • определите, для чего используются файлы cookies, и решите, какие инструменты от Google подходят для того, чтобы отказаться от них.

И последнее: если вы столкнулись с ситуацией, которая не поддерживается CHIPS и FPS, посмотрите другие предложения Privacy Sandbox, где необходимость в межсайтовом файле cookie заменяется специализированным API, позволяющим выполнять такой сценарий использования.

Ещё статьи
Или как правильно подготовиться к техническому собеседованию
Расширения для браузеров, облачные сервисы и библиотеки.