Какие данные лучше не хранить в 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.