Выбор ответа Senior REST API и OpenAPI обновлено
Самая частая уязвимость API
Вопрос
В API есть GET /orders/{id}. Клиент перебирает id и видит чужие заказы. Как называется проблема и где она закрывается?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: BOLA: сервер должен проверять, что заказ принадлежит пользователю. BOLA (Broken Object Level Authorization) первая в OWASP API Security Top 10: аутентификация есть, а проверки владельца объекта нет.
Варианты ответа
- SQL-инъекция: нужно экранировать id и использовать параметры
- BOLA: сервер должен проверять, что заказ принадлежит пользователюправильный ответ
- Отсутствие HTTPS: нужно включить TLS, тогда id не перехватят
- Нехватка rate limit: нужно ограничить число запросов с одного IP
Разбор
BOLA (Broken Object Level Authorization) первая в OWASP API Security Top 10: аутентификация есть, а проверки владельца объекта нет. Закрывается проверкой прав на каждый объект на сервере. Перебор id не SQL-инъекция. TLS шифрует канал, но не проверяет права. Rate limit замедлит перебор, но не устранит доступ к чужому.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.