Работа с localStorage: методы, хранение объектов и защита данных

localStorage — это встроенное в браузер хранилище данных на стороне клиента. В отличие от cookies, данные в localStorage не передаются на сервер с каждым запросом и не имеют срока истечения — они хранятся до явного удаления. Максимальный размер — около 5 МБ на домен.

Отличие от sessionStorage и cookies

localStorage sessionStorage cookie
Срок хранения Постоянно До закрытия вкладки Задаётся вручную
Объём ~5 МБ ~5 МБ ~4 КБ
Доступ с сервера Нет Нет Да
Область видимости Весь домен Вкладка Весь домен

Основные методы

Хранение объектов и массивов

localStorage хранит только строки. Для объектов используйте JSON:

Запись через квадратные скобки

Хранение данных с временной меткой

localStorage не удаляет данные автоматически. Чтобы реализовать «протухание», сохраняйте время записи:

Обработка переполнения хранилища

Реакция на изменения в других вкладках

Когда НЕ использовать localStorage

  • Для хранения токенов авторизации (JWT) — уязвимо к XSS-атакам, лучше httpOnly cookie
  • Для больших объёмов данных (используйте IndexedDB)
  • Для данных, которые должны быть доступны на сервере (используйте cookie или запросы к API)