Выбор ответа Senior CSRF, SameSite и CORS обновлено
Токен в localStorage и CSRF
Вопрос
SPA хранит access-токен в localStorage и отправляет его в заголовке Authorization. Что верно?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: CSRF невозможен, но любой XSS прочитает токен, поэтому важна защита от XSS. Браузер не прикладывает заголовок Authorization сам, поэтому подделать запрос с чужого сайта нельзя.
Варианты ответа
- Нужна обязательная CSRF-защита: браузер приложит заголовок с токеном сам
- Это полностью безопасно и от CSRF, и от XSS, раз токен не в cookie
- CSRF невозможен, но любой XSS прочитает токен, поэтому важна защита от XSSправильный ответ
- Токен в localStorage защищён флагом HttpOnly и недоступен скриптам страницы
Разбор
Браузер не прикладывает заголовок Authorization сам, поэтому подделать запрос с чужого сайта нельзя. Зато localStorage доступен любому скрипту страницы, и XSS приведёт к краже токена. HttpOnly бывает только у cookie.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.