Видны ли сторонним лицам данные из 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.