Выбор ответа Senior Авторизация: IDOR, RBAC, ABAC обновлено
Вложенные ресурсы
Вопрос
Эндпоинт GET /orgs/{orgId}/projects/{projectId} проверяет, что пользователь состоит в организации orgId, и загружает проект по projectId. Какая уязвимость возможна?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Подставят projectId из чужой организации и получат его, если не проверить связь с orgId. Проверка родительского ресурса не гарантирует, что дочерний действительно в нём.
Варианты ответа
- Никакая: если пользователь состоит в организации, все проекты по этому пути ему доступны
- BFLA: обычный участник организации сможет вызывать функции, доступные только админу
- Перечисление организаций: по кодам ответа 403 и 404 можно узнать, какие orgId существуют
- Подставят
projectIdиз чужой организации и получат его, если не проверить связь сorgIdправильный ответ
Разбор
Проверка родительского ресурса не гарантирует, что дочерний действительно в нём. Нужно загружать проект с условием org_id = orgId или проверять принадлежность явно. Это частая ошибка в REST с вложенными путями.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.