Сторонние файлы cookie и встраивание рабочих процессов

Сторонние файлы cookie имеют множество применений, но они также являются ключевым фактором межсайтового отслеживания.

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

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

Встроенные службы или внедрения включают сторонний контент (например, видео, карты), интерактивные компоненты (например, чат, системы комментариев или платежные сервисы), службы входа в систему и многое другое.

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

Если ваш сайт использует встраивание, использующее сторонние файлы cookie, обязательно проверьте и протестируйте свои действия, связанные с встраиванием, и обратитесь к поставщикам встраивания, если вы обнаружите какие-либо неисправности.

Аудит и тестирование вашего взаимодействия с пользователем, связанного с внедрением

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

Ограничив использование сторонних файлов cookie, протестируйте следующие распространенные сценарии внедрения:

  • Виджеты чата: можете ли вы начать сеанс чата? Можете ли вы обновить страницу, не теряя сеанс? Можете ли вы перейти на другие страницы и продолжить сеанс?
  • Встраивание контента. Можете ли вы просматривать видеоконтент или другой встроенный контент? Сохраняются ли пользовательские настройки, такие как язык или субтитры? Видите ли вы рекламу тогда, когда этого ожидаете, например, не видите ее как премиум-подписчик?
  • Вход: работают ли входы, включая любые входы с единым входом (SSO), для встраиваемых систем, которые их поддерживают? Сохраняются ли они при перезагрузке страницы и переходе на страницы, использующие те же встраивания?
  • Виджеты комментариев: можете ли вы оставлять комментарии, ставить лайки и голосовать за них?
  • Встроенные платежные решения: можете ли вы успешно совершать платежи?

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

Распространенные случаи использования

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

Вариант использования Рекомендуемый API для использования сторонних файлов cookie
Виджет чата ЧИПСЫ
Встраивание карты ЧИПСЫ
Домены-песочницы для ненадежного пользовательского контента
(например, googleusercontent.com и githubusercontent.com), для которых требуется определение состояния для каждого издателя.
ЧИПСЫ
Встроенные объявления, для которых требуется ограничение по штату для каждого издателя. ЧИПСЫ
Войти через поставщика удостоверений ФедКМ
Встраивание размещено на разных, но связанных источниках. API доступа к хранилищу со связанными наборами веб-сайтов
Встраивание контента с настройками входа в систему
(например, видеоконтент без рекламы или настройки языка/субтитров)
API доступа к хранилищу
Виджет комментариев в социальных сетях, требующий входа в систему API доступа к хранилищу
Рекомендуемые альтернативные API для распространенных случаев использования

Выбор API для встроенных сторонних сценариев использования

В этом разделе рассказывается, как выбрать подходящий альтернативный API, и объясняются рекомендуемые API.

Следующая блок-схема поможет выбрать один из доступных вариантов:

Блок-схема вариантов принятия решения об альтернативе сторонним файлам cookie на основе трех вопросов.
Решение о том, какой API использовать для встраивания сторонних файлов cookie.

Блок-схема задает три основных вопроса, и мы рассмотрим их более подробно и почему тот или иной API рекомендуется в каждом случае.

1. Являются ли файлы cookie специфичными для сайта внедрения?

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

Если вы предоставляете стороннюю услугу внедрения на другие сайты и она использует файлы cookie, подумайте, относятся ли эти файлы cookie к службе на сайте, на котором они встроены. Распространяются ли они когда-либо в экземплярах вашей вставки на других сайтах?

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

Сайты также должны проверять, используются ли файлы cookie по правильным причинам. Файлы cookie следует использовать только в том случае, если они установлены или их необходимо отправить с помощью HTTP-запросов. Если это не так и файлы cookie используются только как удобный вариант хранения, то вместо этого следует рассмотреть возможность использования различных API-интерфейсов хранения . Это сохраняет данные локальными, когда их не нужно отправлять. API-интерфейсы хранилища уже разделены во всех основных браузерах аналогично тому, как CHIPS разделяет файлы cookie.

2. Являются ли файлы cookie сторонним поставщиком удостоверений?

Одним из распространенных вариантов использования сторонних файлов cookie во встраиваниях является предоставление возможностей входа в систему, управляемых сторонним поставщиком услуг входа, например , «Войти с помощью Google» . В этом случае секционированные файлы cookie не подходят.

Федеративное управление учетными данными (FedCM) — это специальный API, специально предназначенный для этого варианта использования, который работает без сторонних файлов cookie. Если FedCM поддерживается поставщиком удостоверений, это может устранить необходимость в сторонних файлах cookie.

Подробнее о том, как устранить влияние сторонних файлов cookie на рабочие процессы входа в систему, можно прочитать в руководстве по идентификации .

Если ни один из предыдущих вариантов не является подходящей заменой файлов cookie, вам необходимо рассмотреть возможность повторного включения доступа к сторонним файлам cookie для встраивания. Это можно включить в конкретных контролируемых случаях использования с помощью API доступа к хранилищу . Этот API повторно включает полный доступ к сторонним файлам cookie (при условии контроля), поэтому это наиболее мощный вариант. Вот почему рекомендуется избегать этого, если будет достаточно более ограничительной альтернативы.

Существует несколько требований для использования API доступа к хранилищу:

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

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

Еще один сценарий, в котором пользователь может ожидать этого, — это связанные сайты. Например, некоторые организации используют несколько разных источников, которые рассматриваются браузером как межсайтовые, и поэтому использование файлов cookie между ними рассматривается как стороннее. Примеры включают бренды, имеющие сайты для конкретной страны (например, example.com и example.co.uk ) или веб-сайты, посвященные конкретным брендам (например, example.car и example.house ).

В этом случае, когда имеется небольшое количество связанных веб-сайтов, вы можете использовать наборы связанных веб-сайтов . Сайты передаются в Chrome, чтобы Chrome знал, что они связаны. Это обеспечивает более удобный доступ к API доступа к хранилищу с меньшим количеством запросов.

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

Сравнение различных API

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

ЧИПСЫ Разделенное хранилище ФедКМ API доступа к хранилищу со связанными наборами веб-сайтов API доступа к хранилищу
Пользователю не обязательно иметь ранее доступ к встроенной стороне как к сайту верхнего уровня.
Не требует запроса пользователя для подтверждения доступа
Не требует от пользователя взаимодействия с встраиванием
(Может быть справедливо и для встроенных сайтов с доступом верхнего уровня .)
Усилия по реализации Очень низкий Низкий Высокий Середина Середина
Может использоваться для обмена файлами cookie между несколькими сайтами/источниками верхнего уровня.
( Предложение на обсуждении. )
Доступно в браузерах, отличных от Chromium.
(Возврат к API доступа к хранилищу.)
Поведение, требуемый уровень усилий и доступность ключевых API для встраиваемых вариантов использования.

Поддержка вариантов использования в браузерах

Совместимость браузера является одним из основных факторов при принятии решения, как указано в последней строке таблицы. Некоторые API (CHIPS, FedCM, наборы связанных веб-сайтов) доступны только в браузерах Chromium. В настоящее время единственными двумя кроссбраузерными решениями являются API секционированного хранилища (когда файлы cookie не требуются) или API доступа к хранилищу (когда файлы cookie требуются).

Однако, как отмечалось ранее , API доступа к хранилищу имеет ряд ограничений, которые могут повлиять на работу пользователей на вашем веб-сайте. Команда Chrome работала над добавлением других API, которые предназначены для конкретных случаев использования и обеспечивают возможности, аналогичные возможностям сторонних файлов cookie. Поэтому рекомендуется рассмотреть, какие варианты являются лучшими, и рассматривать их как прогрессивные улучшения с возвратом к API доступа к хранилищу для неподдерживающих браузеров.

Поскольку файлы cookie могут быть заблокированы по ряду причин (например, настройки браузера, расширения), обнаружения функции поддержки API может быть недостаточно. Вместо этого лучше проверить, существуют ли ожидаемые файлы cookie, а если нет, вернуться к рабочему процессу API доступа к хранилищу, чтобы запросить доступ к сторонним файлам cookie .

Примите меры сейчас!

Если ваша сторонняя вставка больше не работает без использования сторонних файлов cookie, существует несколько решений, которые устраняют возможные последствия, как подробно описано в этом выступлении. Настал момент проверить ваш сервис на наличие сторонних файлов cookie!

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

Если у вас есть вопросы по поводу вариантов использования сторонних встраиваний, не описанных в этом руководстве, вы можете поднять новую проблему, используя тег «Устаревшие сторонние файлы cookie» в нашем репозитории поддержки разработчиков.