Краткий ответ: LocalStorage — это механизм хранения, основанный на браузере, который, как и файлы cookie, подпадает под регулирование конфиденциальности данных, включая Директиву ЕС о конфиденциальности и GDPR. Хранение или доступ к несущественным данным в LocalStorage без предварительного, информированного и свободно данного согласия пользователя является нарушением соблюдения. Большинство организаций упускают это из виду, потому что их инструменты управления согласием настроены только для файлов cookie, оставляя LocalStorage полностью неуправляемым.
Основные выводы
- LocalStorage юридически рассматривается как "аналогичная технология" для файлов cookie в соответствии с законодательством Великобритании и ЕС, что означает, что применяются те же правила согласия.
- Европейский комитет по защите данных (EDPB) подтвердил, что такие технологии, как LocalStorage, требуют предварительного, информированного и свободно данного согласия перед хранением или доступом к любым несущественным данным [2].
- ICO различает хранение, строго необходимое для услуги, и несущественное хранение, используемое для отслеживания или аналитики; только последнее требует явного согласия [1].
- Многие платформы управления согласием регулируют файлы cookie по умолчанию, но оставляют LocalStorage без контроля, создавая значительный разрыв в соблюдении [3].
- SessionStorage несет те же последствия для конфиденциальности, что и LocalStorage, когда используется для отслеживания или аналитики.
- Отзыв согласия обязывает веб-сайт удалить любые данные LocalStorage, собранные на основании этого согласия.
- Скрипты третьих сторон, которые записывают данные в LocalStorage, также требуют покрытия согласия, ответственность лежит на операторе сайта.
- Штрафы за несоблюдение GDPR могут быть значительными; риск увеличивается, когда нарушения являются системными и нераскрытыми.
Что такое LocalStorage и как он работает
LocalStorage — это API веб-хранения, встроенный в современные браузеры, который позволяет веб-сайтам хранить пары данных "ключ-значение" непосредственно на устройстве пользователя, без срока действия и с типичным лимитом на источник около 5-10 МБ. В отличие от файлов cookie, данные LocalStorage никогда не отправляются автоматически на сервер с HTTP-запросами, они сохраняются до тех пор, пока не будут явно очищены с помощью JavaScript веб-сайта или пользователем.
Вот как это работает на практике:
- JavaScript веб-сайта вызывает
localStorage.setItem('key', 'value')для записи данных. - Эти данные остаются на устройстве между сессиями браузера до тех пор, пока не будет вызван
localStorage.removeItem('key')илиlocalStorage.clear(). - Только скрипты с того же источника (протокол + домен + порт) могут читать или записывать эти данные.
Распространенные применения включают: хранение пользовательских предпочтений (тема, язык), токены сессий, идентификаторы аналитики, содержимое корзины покупок и назначения вариантов A/B тестирования.
Ключевой момент соблюдения: поскольку LocalStorage хранит данные на устройстве пользователя, он вызывает ту же юридическую основу, что и файлы cookie в соответствии с Директивой о конфиденциальности и GDPR, независимо от того, передаются ли эти данные на сервер [4].
Нуждается ли LocalStorage в согласии пользователя в соответствии с GDPR
Да, для любого несущественного использования LocalStorage требуется явное согласие пользователя перед хранением или доступом к данным. EDPB подтвердил, что такие технологии, как LocalStorage, подпадают под те же требования согласия, что и файлы cookie, что требует предварительного, информированного и свободно данного согласия [2]. ICO дополнительно уточняет, что согласие должно быть подтверждено четким, недвусмысленным действием, а не подразумеваться из поведения при просмотре или предполагаться из продолжения использования сайта [1].
Исключение по необходимости: Если LocalStorage используется исключительно для выполнения функции, которую пользователь явно запросил, например, для сохранения предметов в корзине покупок во время активной сессии, это может считаться строго необходимым хранением и не требовать согласия. Однако если те же данные корзины используются для аналитики, ретаргетинга или поведенческого профилирования, исключение по необходимости больше не применяется.
Распространенная ошибка: Предположение, что поскольку данные LocalStorage не передаются с HTTP-запросами, они находятся вне сферы действия закона о конфиденциальности. Закон применяется к акту хранения или доступа к информации на устройстве пользователя, а не к тому, передается ли эта информация.
Разница между LocalStorage и файлами cookie: требования к согласию
Оба, LocalStorage и файлы cookie, требуют согласия при использовании для несущественных целей, но они различаются в техническом поведении и в том, как инструменты соблюдения обычно с ними работают.
| Особенность | Файлы cookie | LocalStorage |
|---|---|---|
| Срок действия | Настраиваемый | Нет (до очистки) |
| Отправляется с HTTP-запросами | Да | Нет |
| Доступ на стороне сервера | Да | Нет |
| По умолчанию охватывается большинством CMP | Да | Часто нет [3] |
| Требуется согласие (несущественное) | Да | Да |
| Область применения | По домену/пути | По источнику |
Практический разрыв значителен: большинство платформ управления согласием спроектированы вокруг блокировки файлов cookie и их категоризации. Записи в LocalStorage происходят через JavaScript, который CMP может не перехватывать, если не настроен специально для этого. Вот почему LocalStorage под радаром: почему он также требует явного согласия пользователя — это не просто теоретическая проблема, это активная слепая зона соблюдения для значительной части веб-сайтов [3].
Почему LocalStorage требует явного согласия пользователя
LocalStorage требует явного согласия, потому что это означает доступ или хранение информации на устройстве пользователя, действие, регулируемое Директивой о конфиденциальности (и ее национальными реализациями) независимо от того, связано ли это с личными данными. Юридические эксперты классифицируют LocalStorage как "аналогичную технологию" для файлов cookie в соответствии с законодательством Великобритании, требуя предварительного, информированного и свободно данного согласия перед любым несущественным хранением [4].
Основная логика проста: закон защищает устройство пользователя как продолжение их частной сферы. Независимо от того, хранятся ли данные в файле cookie, LocalStorage, IndexedDB или кэше сервисного работника, юридическим триггером является само действие хранения, а не формат.
Три условия для действительного согласия (по руководству ICO) [1]:
- Свободно данное, без объединения согласия с принятием условий обслуживания.
- Конкретное и информированное, пользователь должен знать, что хранится и почему.
- Недвусмысленное, согласие должно исходить из четкого положительного действия, такого как установка флажка.
Является ли LocalStorage отслеживанием в соответствии с законами о конфиденциальности
LocalStorage считается отслеживанием, когда он используется для идентификации, профилирования или мониторинга пользователей между сессиями или страницами. Хранение идентификатора пользователя аналитики, назначения A/B теста или метки поведенческого сегмента в LocalStorage считается отслеживанием по большинству регуляторных интерпретаций, независимо от того, синхронизируются ли эти данные позже с сервером.
Это суть LocalStorage под радаром: почему он также требует явного согласия пользователя, многие разработчики рассматривают LocalStorage как нейтральный механизм кэширования, тогда как регуляторы рассматривают любой постоянный идентификатор на стороне устройства как потенциальный вектор отслеживания, требующий согласия.
Можно ли хранить личные данные в LocalStorage
Технически да, но это несет значительный юридический риск и, как правило, не рекомендуется. Личные данные, хранящиеся в LocalStorage (такие как адреса электронной почты, компоненты отпечатков устройств или идентификаторы пользователей, связанные с профилями), подлежат всем обязательствам GDPR: законной основе, минимизации данных, ограничениям на хранение и праву на удаление [1].
Риски, специфичные для LocalStorage:
- Данные сохраняются на неопределенный срок, если не будут явно очищены, что затрудняет соблюдение требований по хранению.
- Любой JavaScript на странице (включая скрипты третьих сторон) может потенциально получить доступ к данным LocalStorage с того же источника.
- Нет встроенного шифрования; чувствительные данные, хранящиеся в открытом виде, доступны любому, кто имеет доступ к устройству или через уязвимости XSS.
Рекомендация: Избегайте хранения идентифицируемых личных данных в LocalStorage. Если хранение необходимо, убедитесь, что согласие получено, данные минимизированы, и существует четкий механизм удаления.
LocalStorage против SessionStorage: последствия для конфиденциальности
SessionStorage ведет себя идентично LocalStorage с точки зрения API веб-хранения, но данные очищаются, когда вкладка или окно браузера закрываются. Несмотря на этот более короткий срок хранения, SessionStorage подлежит тем же требованиям согласия, когда используется для отслеживания или аналитики [6].
Ключевое различие для целей соблюдения:
- SessionStorage может быстрее квалифицироваться как строго необходимое (например, поддержание состояния во время многошаговой покупки), поскольку данные не сохраняются за пределами сессии.
- LocalStorage почти всегда требует согласия для случаев использования отслеживания, поскольку его постоянство создает долгосрочный идентификатор на устройстве пользователя.
Ни один из механизмов не является изначально освобожденным от закона о конфиденциальности. Цель и содержание хранимых данных определяют обязательство по согласию, а не тип хранения.
Что произойдет, если вы используете LocalStorage без согласия
Использование LocalStorage для несущественных целей без получения действительного предварительного согласия является нарушением Директивы о конфиденциальности и, когда речь идет о личных данных, GDPR. Последствия могут включать регуляторное расследование, принудительные меры и ущерб репутации.
Помимо регуляторного риска, существует растущее техническое измерение соблюдения: функции конфиденциальности браузеров и блокировщики рекламы все чаще нацеливаются на отслеживание на основе LocalStorage. Сайты, полагающиеся на несогласованное использование LocalStorage для аналитики или персонализации, могут обнаружить, что их данные становятся все менее надежными по мере увеличения распространенности этих инструментов.
Контрольный список практической подверженности:
- Скрипты аналитики третьих сторон, записывающие идентификаторы LocalStorage без покрытия согласия.
- Инструменты A/B тестирования, хранящие назначения вариантов до получения согласия.
- Чат-виджеты или инструменты поддержки, инициализирующие LocalStorage при загрузке страницы до любого взаимодействия пользователя.
- Ретаргетинговые пиксели, использующие LocalStorage в качестве резервного варианта синхронизации cookie.
Как реализовать согласие на использование LocalStorage на вашем веб-сайте
Реализация согласия на использование LocalStorage требует платформы управления согласием, которая может блокировать выполнение JavaScript, а не только установку файлов cookie, до тех пор, пока пользователь не сделает действительный выбор согласия. Стандартные баннеры cookie, которые работают только на уровне HTTP, не перехватят записи LocalStorage, сделанные JavaScript [3].
Поэтапный подход к реализации:
- Аудит использования LocalStorage. Используйте инструменты разработчика браузера (вкладка Приложение) и сканер скриптов, чтобы определить каждый ключ, записанный в LocalStorage, какой скрипт его записывает и с какой целью.
- Классифицируйте каждое использование. Классифицируйте хранение как строго необходимое, функциональное, аналитическое или маркетинговое. Только строго необходимое хранение может продолжаться без согласия.
- Выберите CMP, которая охватывает LocalStorage. Убедитесь, что ваша платформа управления согласием может блокировать или откладывать выполнение JavaScript для несущественных скриптов до получения согласия. Biscotti CMP предназначен для управления согласием на уровне скриптов.
- Реализуйте загрузку скриптов с учетом согласия. Несущественные скрипты, которые записывают данные в LocalStorage, должны загружаться только после того, как пользователь принял соответствующую категорию согласия.
- Обеспечьте четкий интерфейс согласия. Баннер согласия должен описывать использование LocalStorage простым языком, классифицированным по целям, с детализированными опциями согласия.
- Реализуйте механизм отзыва и удаления. Когда пользователь отзывает согласие, соответствующие ключи LocalStorage должны быть немедленно очищены.
Как удалить данные LocalStorage после отзыва согласия пользователя
Когда пользователь отзывает согласие, веб-сайт должен незамедлительно удалить любые данные LocalStorage, которые были собраны на основании этого согласия. Это не является опциональным, право на отзыв согласия и удаление связанных данных является основным принципом GDPR.
Шаблон реализации: