Выбор ответа Senior REST API и OpenAPI обновлено

Самая частая уязвимость API

Вопрос

В API есть GET /orders/{id}. Клиент перебирает id и видит чужие заказы. Как называется проблема и где она закрывается?

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

Выберите вариант, и откроется разбор.

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

Коротко

Правильный ответ: BOLA: сервер должен проверять, что заказ принадлежит пользователю. BOLA (Broken Object Level Authorization) первая в OWASP API Security Top 10: аутентификация есть, а проверки владельца объекта нет.

Варианты ответа

  1. SQL-инъекция: нужно экранировать id и использовать параметры
  2. BOLA: сервер должен проверять, что заказ принадлежит пользователюправильный ответ
  3. Отсутствие HTTPS: нужно включить TLS, тогда id не перехватят
  4. Нехватка rate limit: нужно ограничить число запросов с одного IP

Разбор

BOLA (Broken Object Level Authorization) первая в OWASP API Security Top 10: аутентификация есть, а проверки владельца объекта нет. Закрывается проверкой прав на каждый объект на сервере. Перебор id не SQL-инъекция. TLS шифрует канал, но не проверяет права. Rate limit замедлит перебор, но не устранит доступ к чужому.

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

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