Выбор ответа Middle Авторизация: IDOR, RBAC, ABAC обновлено

Роль в токене

Вопрос

API берёт роль пользователя из поля role JWT. Когда это допустимо?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Если сервер проверяет подпись, а роль ставит сервер авторизации; смена роли ждёт нового токена. JWT подписан, но не зашифрован: его содержимое легко прочитать и изменить, и без проверки подписи сервер примет любую роль.

Варианты ответа

  1. Если сервер проверяет подпись, а роль ставит сервер авторизации; смена роли ждёт нового токенаправильный ответ
  2. В любом случае: JWT подписан, поэтому его содержимое нельзя ни прочитать, ни изменить
  3. Ни в каком: стандарт RFC 7519 запрещает класть в токен данные об авторизации
  4. Если токен передаётся в заголовке Authorization, а не в cookie, где его можно подменить

Разбор

JWT подписан, но не зашифрован: его содержимое легко прочитать и изменить, и без проверки подписи сервер примет любую роль. Стандарт роли в токене не запрещает, а прочитать содержимое может любой. Способ передачи на целостность не влияет. Важный нюанс: отозванная роль действует до истечения токена, поэтому срок жизни делают коротким.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.