Абсолютно неуязвимого хранилища в браузере нет. Для web-сессии часто выбирают серверную сессию и cookie с HttpOnly, Secure и подходящим SameSite, уменьшая доступ JavaScript к секрету.
Где можно безопасно хранить токен на фронте в браузере, чтобы его не угнали?
Абсолютно неуязвимого хранилища в браузере нет. Для web-сессии часто выбирают серверную сессию и cookie с HttpOnly, Secure и подходящим SameSite, уменьшая доступ JavaScript к секрету.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Абсолютно неуязвимого хранилища в браузере нет. Для web-сессии часто выбирают серверную сессию и cookie с HttpOnly, Secure и подходящим SameSite, уменьшая доступ JavaScript к секрету.
HttpOnly мешает прочитать cookie из JavaScript, но XSS всё ещё может выполнять действия от имени пользователя. Нужны защита от XSS, CSRF, короткие сроки и отзыв сессии. LocalStorage доступен любому выполняющемуся скрипту того же origin, поэтому долгоживущий токен там повышает последствия XSS. Выбор должен учитывать архитектуру, а не обещать защиту одним флагом.
Источник: cheatsheetseries.owasp.org.