Выбор ответа Senior ASP.NET Core обновлено
Что проверять в JWT
Вопрос
API принимает JWT в заголовке Authorization. Какой набор проверок обязателен на стороне сервера?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Подпись по ожидаемому алгоритму, exp/nbf, iss и aud. Декодировать токен может кто угодно, это не проверка.
Варианты ответа
- Подпись по ожидаемому алгоритму,
exp/nbf,issиaudправильный ответ - Только то, что токен корректно декодируется из Base64Url
- Только подпись: если она верна, остальным claims можно доверять
- Наличие claim
subи совпадение IP клиента с IP при выдаче
Разбор
Декодировать токен может кто угодно, это не проверка. Верная подпись доказывает только, что токен выпустил владелец ключа, но не что он ещё действует и предназначен вашему API: без exp украденный токен вечен, без aud подойдёт токен другого сервиса того же провайдера. Алгоритм тоже фиксируют, чтобы исключить подмену на none или путаницу HS/RS. Привязка к IP ломается у мобильных клиентов и за прокси и не входит в стандартные проверки.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.