Ответ вслух Junior Авторизация: IDOR, RBAC, ABAC спрашивают часто обновлено

Объясните IDOR и защиту

Вопрос

Расскажите, что такое IDOR (BOLA), как вы будете его искать и как предложите исправлять.

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

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

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

Коротко

Образцовый ответ: «IDOR это когда сервер верит идентификатору из запроса: GET /invoices/1003 отдаёт чужой счёт, потому что код просто ищет по id. Искать удобно двумя аккаунтами: прохожу все методы с идентификаторами, включая изменение, удаление, экспорт и вложенные пути, и подставляю объекты второго пользователя.

Что должно прозвучать в ответе

  • Суть: нет проверки прав на объект по идентификатору из запроса

  • Поиск: два пользователя, подмена id во всех методах, включая экспорт и вложенные ресурсы

  • Исправление: фильтр по владельцу или арендатору в запросе, централизованная проверка

  • UUID не защита, ответ 404 для чужих объектов

  • Регресс: автотесты на доступ в CI

Что могут спросить следом

  • Почему сканеры плохо находят IDOR?
  • Как защититься на уровне базы данных?

Разбор

Образцовый ответ: «IDOR это когда сервер верит идентификатору из запроса: GET /invoices/1003 отдаёт чужой счёт, потому что код просто ищет по id. Искать удобно двумя аккаунтами: прохожу все методы с идентификаторами, включая изменение, удаление, экспорт и вложенные пути, и подставляю объекты второго пользователя. Сканеры здесь слабы, они не знают, чей объект. Исправление: ограничение в самом запросе по владельцу или арендатору, общий слой проверки прав, для чужих объектов 404. UUID помогает против массового перебора, но не заменяет проверку. И обязательно автотесты с двумя пользователями, чтобы ошибка не вернулась».

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

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