Выбор ответа Middle Авторизация: IDOR, RBAC, ABAC обновлено
Роль в токене
Вопрос
API берёт роль пользователя из поля role JWT. Когда это допустимо?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Если сервер проверяет подпись, а роль ставит сервер авторизации; смена роли ждёт нового токена. JWT подписан, но не зашифрован: его содержимое легко прочитать и изменить, и без проверки подписи сервер примет любую роль.
Варианты ответа
- Если сервер проверяет подпись, а роль ставит сервер авторизации; смена роли ждёт нового токенаправильный ответ
- В любом случае: JWT подписан, поэтому его содержимое нельзя ни прочитать, ни изменить
- Ни в каком: стандарт RFC 7519 запрещает класть в токен данные об авторизации
- Если токен передаётся в заголовке Authorization, а не в cookie, где его можно подменить
Разбор
JWT подписан, но не зашифрован: его содержимое легко прочитать и изменить, и без проверки подписи сервер примет любую роль. Стандарт роли в токене не запрещает, а прочитать содержимое может любой. Способ передачи на целостность не влияет. Важный нюанс: отозванная роль действует до истечения токена, поэтому срок жизни делают коротким.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.