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

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

DOM и браузер

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

Изоляция

sessionStorage привязан к origin и к конкретной вкладке:

  • Другой сайт (b.com) не прочитает данные a.com.
  • Даже другая вкладка того же сайта имеет своё отдельное sessionStorage.
sessionStorage.getItem('data'); // только этот origin и эта вкладка

Уязвимость к XSS

Как и localStorage, sessionStorage доступен любому JS на странице:

// XSS-скрипт прочитает
sessionStorage.getItem('token');

Поэтому чувствительные данные там тоже не хранят.

sessionStorage против localStorage по «видимости»

  • Одинаковая изоляция по origin и уязвимость к XSS.
  • sessionStorage дополнительно изолирован по вкладке и живёт только на время вкладки → данные исчезают при закрытии (меньше окно для кражи, но защита не в этом).

Кто «видит»

Свой и сторонний JS страницы, расширения, пользователь через DevTools.

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

sessionStorage изолирован по origin и по вкладке — сторонний сайт и даже другая вкладка не видят. Но доступен любому JS на странице (включая XSS), поэтому токены там не хранят. Отличие от localStorage — изоляция по вкладке и жизнь на время вкладки. Секреты — в память/HttpOnly cookie.

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