У сторонних файлов cookie много применений, но они также являются ключевым средством межсайтового отслеживания.
Сторонние файлы cookie могут быть заблокированы ограничениями браузера, настройками пользователя , флагами разработчика или политикой предприятия .
Вам необходимо, чтобы ваш сайт или сервис обеспечивал удобство использования для всех ваших пользователей, независимо от того, доступны ли сторонние файлы cookie.
На этой странице вы найдете информацию о решениях по сохранению конфиденциальности для встроенных сценариев, которые традиционно полагались на сторонние файлы cookie, а также стратегии, которые помогут вам выбрать решение, наилучшим образом соответствующее вашим потребностям.
Встроенные сервисы или вставки включают сторонний контент (например, видео, карты), интерактивные компоненты (например, чат, системы комментирования или платежные сервисы), сервисы входа в систему и многое другое.
Большая часть работы по переходу от сторонних файлов cookie должна быть выполнена разработчиками встроенных приложений, а не сайтами, размещающими их. В этом руководстве в первую очередь рассматриваются решения для разработчиков, создающих встроенные сервисы.
Если ваш сайт использует встроенные файлы cookie третьих лиц, обязательно проверьте и протестируйте все связанные со встроенными файлами пути и обратитесь к поставщикам встроенных файлов в случае обнаружения каких-либо неполадок.
Аудит и тестирование действий пользователей, связанных со встроенными приложениями
Лучший способ определить, влияют ли на ваши встраиваемые приложения сторонние файлы cookie, — протестировать потоки пользователей сторонних встраиваемых приложений с включенным флагом тестирования сторонних файлов cookie .
После того как вы ограничили сторонние файлы cookie, протестируйте следующие распространенные сценарии внедрения:
- Виджеты чата: Можно ли начать сеанс чата? Можно ли обновить страницу, не прерывая сеанс? Можно ли переходить на другие страницы, сохраняя сеанс?
- Встроенный контент: Можно ли просматривать видеоконтент или другой встроенный контент? Сохраняются ли пользовательские настройки, такие как язык или субтитры? Видите ли вы рекламу, когда ожидаете, например, не видите её, будучи премиум-подписчиком?
- Вход: Работают ли входы в систему, включая входы с единым входом (SSO), для встраиваемых приложений, которые их поддерживают? Сохраняются ли они при перезагрузке страницы и переходе на страницы с теми же встраиваемыми приложениями?
- Виджеты комментариев: можно ли оставлять комментарии, ставить отметки «Нравится» и голосовать за них?
- Встроенные платежные решения: сможете ли вы успешно совершать платежи?
В следующих разделах вы найдете более конкретную информацию о том, как эти потоки могут быть затронуты.
Распространенные варианты использования
Существует ряд API, которые можно использовать для встраивания, традиционно полагающегося на сторонние файлы cookie. В следующей таблице перечислены некоторые распространённые рабочие процессы и рекомендуемые API для общего обзора. В следующих разделах будут объяснены причины этих рекомендаций.
Вариант использования | Рекомендуемый API для использования сторонних файлов cookie |
---|---|
Виджет чата | ЧИПСЫ |
Встраивание карты | ЧИПСЫ |
Домены-песочницы для ненадежного пользовательского контента (например, googleusercontent.com и githubusercontent.com), для которых требуется ограничение состояния на каждого издателя | ЧИПСЫ |
Встроенные объявления, требующие ограничения по состоянию для каждого издателя | ЧИПСЫ |
Вход через поставщика удостоверений | FedCM |
Встраивание, размещенное на разных, но связанных источниках. | API доступа к хранилищу с соответствующими наборами веб-сайтов |
Встраивание контента с настройками на основе входа в систему (например, видеоконтент без рекламы или настройки языка/субтитров) | API доступа к хранилищу |
Виджет для комментирования в социальных сетях, требующий входа в систему | API доступа к хранилищу |
Выберите подходящий API для встроенных сторонних вариантов использования
В этом разделе рассказывается, как выбрать подходящий альтернативный API, и объясняются рекомендуемые API.
Следующая блок-схема поможет сделать выбор из доступных вариантов:

В блок-схеме задаются три основных вопроса, и мы рассмотрим их более подробно, а также то, почему тот или иной API рекомендуется в каждом случае.
1. Являются ли файлы 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 в этом случае не подходят.
Federated Credential Management (FedCM) — это API, специально разработанный для этого сценария использования, который работает без сторонних файлов cookie. Если поставщик удостоверений поддерживает FedCM, это может устранить необходимость в сторонних файлах cookie.
Дополнительную информацию об устранении влияния сторонних файлов cookie на рабочие процессы входа в систему можно найти в руководстве по идентификации .
3. Используются ли файлы cookie на небольшом количестве связанных сайтов?
Если ни один из предыдущих вариантов не подходит для замены файлов cookie, вам следует рассмотреть возможность повторного включения доступа к сторонним файлам cookie для встроенного приложения. Это можно сделать в определённых контролируемых случаях с помощью API доступа к хранилищу . Этот API повторно включает полный доступ к сторонним файлам cookie (с учётом настроек), поэтому это самый эффективный вариант. Поэтому рекомендуется избегать его, если более строгая альтернатива достаточна.
Для использования API доступа к хранилищу необходимо выполнить несколько требований:
- Пользователь должен ранее посетить сайт, на котором будет встраиваться контент, на верхнем уровне. Например, если встраивается система комментирования, пользователь также должен посетить сайт этой системы.
- Пользователь должен взаимодействовать со встроенным контентом, прежде чем файлы cookie будут переданы. Это означает, что загрузка всего встроенного контента без взаимодействия с пользователем может быть невозможна.
- Пользователю может потребоваться дать согласие на совместное использование cookie-файлов во всплывающем окне браузера , особенно в первый раз и периодически в дальнейшем.
- На сайте внедрения может также потребоваться установить дополнительные атрибуты песочницы .
Эти ограничения гарантируют, что эффективное действие по повторному включению сторонних файлов cookie будет выполнено только тогда, когда этого ожидают пользователь и сайт. Однако в некоторых сценариях действия пользователя могут быть пропущены. Например, если пользователь недавно подтвердил доступ, повторное включение может не потребоваться в течение определённого времени (определяемого браузером).
Другой сценарий, в котором пользователь, вероятно, ожидает подобного поведения, — это связанные сайты. Например, некоторые организации используют несколько разных источников, которые браузер воспринимает как межсайтовые, и поэтому использование файлов cookie на них рассматривается как сторонние. Примерами служат бренды с сайтами, ориентированными на определённые страны (например, example.com и example.co.uk ), или сайты, ориентированные на конкретные бренды (например, example.car и example.house ).
В этом случае, если связанных веб-сайтов немного, можно использовать наборы связанных веб-сайтов . Сайты передаются в Chrome, что позволяет ему определить, что они связаны. Это позволяет получить доступ к API доступа к хранилищу более удобным способом, с меньшим количеством запросов.
Для несвязанных веб-сайтов, которые фактически являются сторонними и где требуется полный доступ к сторонним файлам cookie, поскольку альтернативных API недостаточно, использование API доступа к хранилищу будет подчиняться полным требованиям и подсказкам.
Сравнение различных API
Каждое из решений имеет несколько различных характеристик и ограничений, что делает их более предпочтительными для определённых случаев использования. В следующей таблице представлены основные различия:
ЧИПСЫ | Разделенное хранилище | FedCM | API доступа к хранилищу с соответствующими наборами веб-сайтов | API доступа к хранилищу | |
---|---|---|---|---|---|
Пользователю не обязательно иметь предварительный доступ к встроенной стороне как к сайту верхнего уровня. | |||||
Не требует запроса от пользователя на одобрение доступа. | |||||
Не требует взаимодействия пользователя со встроенным элементом. | (Может быть справедливо и для встроенных сайтов с доступом верхнего уровня .) | ||||
Усилия по внедрению | Очень низкий | Низкий | Высокий | Середина | Середина |
Может использоваться для распространения файлов cookie между несколькими сайтами/источниками верхнего уровня. | ( Предложение обсуждается. ) | ||||
Доступно в браузерах, отличных от Chromium | (Возвращается к API доступа к хранилищу.) |
Поддержка вариантов использования в разных браузерах
Совместимость с браузером — один из важнейших факторов при выборе решения, как указано в последней строке таблицы. Некоторые API (CHIPS, FedCM, Related WebSite Sets) доступны только в браузерах Chromium. В настоящее время существуют только два кроссбраузерных решения: API для секционированного хранилища (когда файлы cookie не требуются) и API для доступа к хранилищу (когда файлы cookie требуются).
Однако, как отмечалось ранее , API Storage Access имеет ряд ограничений, которые могут повлиять на удобство использования вашего сайта. Команда Chrome работала над добавлением других API, разработанных для решения конкретных задач и обеспечивающих взаимодействие с пользователем, аналогичное тому, которое было возможно при использовании сторонних файлов cookie. Поэтому рекомендуется рассмотреть оптимальные варианты и рассматривать их как прогрессивные улучшения, предусмотрев возможность отката к API Storage Access для браузеров, не поддерживающих этот API.
Поскольку файлы cookie могут быть заблокированы по ряду причин (например, из-за настроек браузера, расширений), проверки поддержки API может быть недостаточно. Вместо этого лучше всего проверить наличие ожидаемых файлов cookie, и если нет, обратиться к рабочему процессу API доступа к хранилищу, чтобы запросить доступ к сторонним файлам cookie .
Действуйте сейчас!
Если ваш сторонний встроенный контент больше не работает без использования сторонних файлов cookie, существует несколько решений, которые помогут устранить возможные проблемы, описанные в этом докладе. Сейчас самое время провести аудит вашего сервиса на наличие сторонних файлов cookie!
Если сейчас возникают проблемы со встроенными функциями, поскольку Chrome тестирует удаление сторонних файлов cookie , существует ряд краткосрочных вариантов решения проблемы при переходе на альтернативные решения, описанные в этой статье. Подробнее см. в документации по сохранению критически важных функций пользовательского опыта .
Если у вас возникли вопросы по вариантам использования сторонних встроенных файлов cookie, не рассмотренным в этом руководстве, вы можете создать новую проблему, используя тег «устаревание сторонних файлов cookie» в нашем репозитории поддержки разработчиков.