Объясните IDOR и защиту
Вопрос
Расскажите, что такое IDOR (BOLA), как вы будете его искать и как предложите исправлять.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Суть: нет проверки прав на объект по идентификатору из запроса
Поиск: два пользователя, подмена id во всех методах, включая экспорт и вложенные ресурсы
Исправление: фильтр по владельцу или арендатору в запросе, централизованная проверка
UUID не защита, ответ 404 для чужих объектов
Регресс: автотесты на доступ в CI
Что могут спросить следом
- Почему сканеры плохо находят IDOR?
- Как защититься на уровне базы данных?
Разбор
Образцовый ответ: «IDOR это когда сервер верит идентификатору из запроса: GET /invoices/1003 отдаёт чужой счёт, потому что код просто ищет по id. Искать удобно двумя аккаунтами: прохожу все методы с идентификаторами, включая изменение, удаление, экспорт и вложенные пути, и подставляю объекты второго пользователя. Сканеры здесь слабы, они не знают, чей объект. Исправление: ограничение в самом запросе по владельцу или арендатору, общий слой проверки прав, для чужих объектов 404. UUID помогает против массового перебора, но не заменяет проверку. И обязательно автотесты с двумя пользователями, чтобы ошибка не вернулась».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.