Различия между Cookie, sessionStorage и localStorage
Веб-сайты иногда сохраняют информацию внутри браузера.
Поддерживать состояние входа. Запоминать настройки отображения. Сохранять содержимое корзины. Продолжать прошлое действие. Распознавать повторный визит из того же браузера.
Типичные механизмы для этого — Cookie, sessionStorage и localStorage.
Они делают Web удобнее. Но с точки зрения анонимности они становятся признаками, по которым можно распознать тот же браузер.
Что такое Cookie
Cookie — это небольшие данные, которые веб-сайт сохраняет в браузере и которые отправляются серверу в запросах, соответствующих условиям.
Они используются для состояния входа, идентификаторов сессии, настроек отображения, аналитики доступа, рекламной идентификации и других целей.
Например, когда вы входите на сайт, в браузере сохраняется Cookie, указывающий на сессию. При следующем доступе к тому же сайту этот Cookie отправляется. Сайт может определить: «этот браузер принадлежит пользователю, который уже вошел».
Для анонимности важно, что Cookie остаются даже при смене IP-адреса.
Если после доступа с домашнего соединения использовать и открыть тот же сайт в том же браузере, при отправке того же Cookie браузер будет восприниматься как тот же самый.
Что такое sessionStorage
sessionStorage — это данные, временно сохраняемые по вкладке или окну браузера.
Обычно они исчезают при закрытии этой вкладки. Они используются для промежуточного ввода в формы, состояния экрана, временной информации о действиях и других задач.
В отличие от Cookie, обычно они не отправляются автоматически с каждым HTTP-запросом. Они читаются и записываются из JavaScript и используются в обработке внутри страницы.
Однако то, что они не отправляются серверу автоматически, не означает, что они не связаны с анонимностью. Скрипт веб-страницы может прочитать их и при необходимости отправить серверу.
Что такое localStorage
localStorage — это данные, долговременно сохраняемые в браузере.
Они остаются после закрытия вкладки. Они остаются после перезапуска браузера. Их могут использовать для настроек сайта, темы, сохранения состояния, идентификаторов и других целей.
localStorage позволяет хранить больше данных, чем Cookie, и управляется из JavaScript.
С точки зрения анонимности важно, что значение, оставшееся в localStorage, может использоваться для распознавания повторного визита.
Даже если удалить Cookie, при оставшемся идентификаторе в localStorage браузер может восприниматься как тот же самый.
Различия между тремя механизмами
Cookie, sessionStorage и localStorage отличаются сроком хранения и способом отправки.
| Пункт | Cookie | sessionStorage | localStorage |
|---|---|---|---|
| Срок хранения | Остаются до заданного срока | До закрытия вкладки или окна | В принципе остаются без срока, но могут исчезнуть из-за действий пользователя, настроек браузера, приватного просмотра или обращения с областью хранения |
| Отправка серверу | Автоматически отправляются при совпадении условий | Не отправляется автоматически | Не отправляется автоматически |
| Основное назначение | Вход, сессия, аналитика | Временное состояние экрана | Настройки, сохранение состояния, идентификаторы |
| Предостережение для анонимности | Тот же браузер виден даже при смене IP | Используется в обработке страницы | Может оставаться после удаления Cookie |
Все это информация, остающаяся внутри браузера. В анонимности недостаточно смотреть только на Cookie.
Ситуации, проблемные для анонимности
Проблема возникает, когда использование под настоящим именем и анонимное использование смешиваются в одном браузере.
Например, использовать для анонимной активности тот же браузер, где выполнен вход в аккаунт с настоящим именем. Удалить только Cookie, оставив localStorage. После открытия сайта для анонимной активности вернуться к сервису с настоящим именем в той же вкладке или том же браузере.
При таком использовании информация внутри браузера смешивается.
| Ситуация | Что происходит |
|---|---|
| Использовать настоящее имя и анонимность в одном браузере | Смешиваются Cookie и сохраненная информация |
| Удалять только Cookie | Остаются localStorage и другие области хранения |
| Вести анонимную активность при открытом сайте с выполненным входом | Действия связываются в одной среде |
| Использовать несколько аккаунтов в одном браузере | Легче возникает корреляция аккаунтов |
В анонимности важно не только удалять сохраненные данные, но и разделять среды.
Cookie, sessionStorage и localStorage иногда обрабатываются вместе как одни «данные сайтов». Но способы сохранения и исчезновения у них не одинаковы.
Даже если нажать в браузере «удалить историю», в зависимости от выбранных пунктов могут удалиться только Cookie, только кэш или только история просмотра, а часть данных сайта останется. И наоборот, при полном удалении данных сайтов исчезнут также состояние входа и настройки.
| Действие | На что обратить внимание |
|---|---|
| Удалить только историю просмотра | Cookie и localStorage могут остаться |
| Удалить Cookie | Могут остаться другие области хранения, например localStorage |
| Удалить данные сайтов | Состояние входа и настройки тоже исчезают |
| Приватное окно | Поведение отличается от существующей обычной среды браузера |
| Синхронизация браузера | Информация может вернуться с другого устройства |
В анонимности нужно проверять область удаления, чтобы избежать ситуации «казалось, что удалил».
Разделение важнее удаления
Cookie и localStorage можно удалить. Но каждый раз удалять их идеально сложно.
У разных сайтов разные места хранения. Настройки браузера удаляют разные области. Влияют расширения и функции синхронизации. В момент входа создается новый идентификатор.
Поэтому в анонимности реалистичнее не полагаться только на удаление, а разделять браузер для настоящего имени и браузер для анонимной активности.
В высокорисковой активности рассматривают разделение не только браузера, но также устройства, ОС и сетевой среды.
Приватный просмотр тоже иногда полезен как часть разделения. Но приватное окно — не технология анонимизации. Это не механизм, который полностью скрывает вас от веб-сайтов, операторов связи, сети на работе или в школе либо серверов назначения.
Приватное окно в основном предназначено для того, чтобы на устройстве было труднее оставить историю и Cookie. Если войти в аккаунт с настоящим именем, действие связывается с этим аккаунтом.
Что проверить
Для информации, сохраненной внутри браузера, проверьте следующие пункты.
- Не используется ли один и тот же браузер для настоящего имени и анонимной активности
- Не выполнен ли вход в аккаунт с настоящим именем в браузере для анонимной активности
- Проверяются ли не только Cookie, но и данные сайтов целиком
- Учитывается ли, что localStorage и sessionStorage могут оставаться
- Не смешивается ли информация с другим устройством через синхронизацию браузера
- Не хранят ли расширения собственную информацию
Особенно осторожно нужно относиться к синхронизации браузера. Если закладки, история, расширения и сохраненные пароли из среды настоящего имени попадут в анонимную среду, разделение разрушится.
Итоги
Cookie, sessionStorage и localStorage — это механизмы, с помощью которых веб-сайты сохраняют информацию внутри браузера.
Cookie автоматически отправляются серверу при совпадении условий. sessionStorage используется для временного хранения на уровне вкладки. localStorage — область хранения, остающаяся долговременно.
Они делают Web удобнее, но в анонимности становятся признаками для распознавания того же браузера.
Даже если изменить IP-адрес, при оставшихся Cookie или localStorage браузер может восприниматься как тот же самый.
Чтобы защищать анонимность, важно не только удалять сохраненную информацию, но и разделять браузерные среды для настоящего имени и для анонимной активности.
Связанные инструменты
BrowserLeaks WebRTC
Внешний ресурс, связанный с этой статьей. Открывайте его только если он подходит вашей ситуации и модели угроз.
Почему указано здесь: Он может помочь с темой статьи, но находится вне Anonymity Sense, поэтому перед использованием его нужно проверить.
BrowserLeaks Fingerprint
Внешний ресурс, связанный с этой статьей. Открывайте его только если он подходит вашей ситуации и модели угроз.
Почему указано здесь: Он может помочь с темой статьи, но находится вне Anonymity Sense, поэтому перед использованием его нужно проверить.
EFF Cover Your Tracks
Внешний ресурс, связанный с этой статьей. Открывайте его только если он подходит вашей ситуации и модели угроз.
Почему указано здесь: Он может помочь с темой статьи, но находится вне Anonymity Sense, поэтому перед использованием его нужно проверить.
Tor Project
Внешний ресурс, связанный с этой статьей. Открывайте его только если он подходит вашей ситуации и модели угроз.
Почему указано здесь: Он может помочь с темой статьи, но находится вне Anonymity Sense, поэтому перед использованием его нужно проверить.