PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Видны ли сторонним лицам данные из localStorage?

DOM и браузер

Данные из localStorage не видны напрямую сторонним сайтам (изоляция по origin), но доступны любому JavaScript на самой странице, поэтому уязвимы к XSS.

Изоляция по origin

localStorage привязан к origin (протокол + домен + порт). Сайт a.com не может прочитать localStorage сайта b.com — браузер это запрещает (как и CORS для запросов).

// На a.com
localStorage.getItem('token'); // только данные a.com

Так что «сторонний сайт» напрямую данные не увидит.

Но: уязвимость к XSS

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

// Если злоумышленник внедрил скрипт (XSS)
localStorage.getItem('token'); // украдёт токен

Поэтому чувствительные данные (токены) не хранят в localStorage — при XSS их легко украсть.

Кто ещё «видит»

  • Пользователь — через DevTools (это его браузер).
  • Расширения браузера с доступом к странице.
  • Любой скрипт на странице (свой и сторонние библиотеки/виджеты).

Безопаснее

Токены — в память или HttpOnly cookie (недоступна JS).

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

localStorage изолирован по origin — сторонний сайт напрямую не прочитает. Но доступен любому JS на странице, включая XSS-скрипт, поэтому уязвим — токены там не хранят. Видят: свой и сторонний JS страницы, расширения, пользователь через DevTools. Секреты — в память/HttpOnly cookie.

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