PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Какие данные лучше не хранить в LocalStorge?

Продвинутые темы

В localStorage лучше не хранить: токены/секреты (уязвимы к XSS), персональные и чувствительные данные, большие объёмы данных и то, что нужно серверу.

Что не хранить в localStorage

Токены авторизации и секреты

localStorage доступен любому JS, включая внедрённый через XSS → токены украдут:

// Опасно
localStorage.setItem('accessToken', token); // XSS украдёт

Токены — в память (access) или HttpOnly cookie (refresh).

Персональные/чувствительные данные

Пароли, номера карт, личные данные — недопустимо (XSS, доступ через DevTools, расширения).

Большие объёмы данных

localStorage ~5–10 МБ, синхронный — большие данные блокируют поток при чтении/записи. Для больших данных — IndexedDB (асинхронный).

Данные, нужные серверу

localStorage на сервер не отправляется. Если данные нужны серверу — использовать cookie.

Сложные/часто меняющиеся структуры

Только строки (нужна сериализация), нет реактивности — неудобно для активного состояния.

Что можно хранить

  • Настройки/предпочтения (тема, язык).
  • Некритичные черновики.
  • Флаги («баннер закрыт»).

Коротко для собеседования

В localStorage не хранят: токены/секреты (уязвимы к XSS — украдёт внедрённый скрипт), персональные/чувствительные данные, большие объёмы (~5–10 МБ, синхронный — блокирует; лучше IndexedDB), данные для сервера (не отправляется — нужен cookie). Подходит для некритичных настроек и флагов. Токены — в память/HttpOnly cookie.

Другие вопросы раздела