PowerScan
RU

Cookie, Local Storage и IndexedDB: что такое сессия на самом деле

Антидетект-браузеры · 7 мин чтения · Автор: PowerOps

Фото: Unsplash

Вход записывает данные в три разных места. Понимание различий объясняет, почему сессии переживают одно, ломаются от другого и почему при синхронизации профиля нужно переносить все три.

«Быть авторизованным» кажется чем-то одним. На деле это как минимум три вещи, хранящиеся в трёх разных местах с тремя разными сроками жизни, и эта разница объясняет большую часть непонятного поведения при переносе сессий между компьютерами.

Cookie

Небольшие пары «ключ — значение», автоматически отправляемые с каждым запросом на сайт, который их установил. Обычно именно здесь лежит токен сессии.

Cookie — самое маленькое хранилище из трёх и самое ответственное. Потеряете их — и вы разлогинены.

Local Storage и Session Storage

Строковое хранилище «ключ — значение», которое читает и записывает JavaScript страницы, в пределах origin. Оно никогда не отправляется с запросом. Страница должна прочитать его сама.

Приложения хранят здесь настройки, кэшированные данные профиля, флаги функций и часто токен обновления. Local Storage сохраняется, пока его не очистят; Session Storage живёт только пока открыта вкладка.

IndexedDB

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

Почему это важно для профиля

Это придаёт слову «изоляция» точный смысл. Два профиля изолированы, когда раздельны все три хранилища, а также кэш и состояние расширений. Инструмент, который изолирует cookie, но делит IndexedDB, решил лишь лёгкую треть задачи.

Это также задаёт планку для переноса профиля между компьютерами. Перенос одних cookie воспроизводит форму сессии, но не её содержание.

ХранилищеКто записываетЧто обычно хранит
CookieСервер и скрипт страницыТокен сессии, настройки, идентификаторы отслеживания
Local StorageСкрипт страницыТокены обновления, состояние интерфейса, кэшированные данные профиля
Session StorageСкрипт страницыСостояние отдельной вкладки, сбрасывается при закрытии вкладки
IndexedDBСкрипт страницыКэшированные данные, офлайн-очереди, ключи шифрования

Перенос сессии между вашими компьютерами

PowerOps сохраняет cookie, Local Storage и IndexedDB при закрытии профиля и восстанавливает их, когда он открывается в другом месте. Каждая категория включается отдельным переключателем — для всего рабочего пространства или для одного профиля, так что вы переносите ровно столько, сколько задумали.

О том, как это работает, стоит знать два свойства:

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

Практический вывод

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

Все статьи · Запустить проверку