Выбор ответа Senior Авторизация и безопасность API обновлено

Проверка прав на функции

Вопрос

Обычный пользователь не видит в интерфейсе кнопку «Удалить пользователя». Как проверить, что защита есть и на сервере?

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

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

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

Коротко

Правильный ответ: Отправить DELETE /admin/users/{id} токеном обычного пользователя и ждать 403. Скрытая кнопка не защита: запрос можно отправить в обход интерфейса.

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

  1. Убедиться, что кнопки нет в интерфейсе ни на одной странице и в меню
  2. Отправить DELETE /admin/users/{id} токеном обычного пользователя и ждать 403правильный ответ
  3. Проверить, что в JavaScript-бандле нет слова admin, путей админки и названий скрытых методов
  4. Попросить разработчика подтвердить, что проверка роли есть в коде

Разбор

Скрытая кнопка не защита: запрос можно отправить в обход интерфейса. В OWASP API Top 10 это Broken Function Level Authorization (API5). Проверка: матрица ролей и эндпоинтов, каждый привилегированный метод вызывается токенами всех ролей ниже.

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

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

Термины по теме