Ответ вслух Middle Авторизация и безопасность API спрашивают часто обновлено

Как тестируешь авторизацию API

Вопрос

Как ты тестируешь аутентификацию и авторизацию в API?

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

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

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

Коротко

Я делю на две части. Аутентификация: запросы без токена, с мусором вместо токена, с просроченным, с токеном от другого окружения, с JWT, где поменял payload или поставил alg none: везде жду 401 и одинаковое сообщение, без подсказок, что именно не так.

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

  • Аутентификация: без токена, с битым, просроченным, чужого окружения, с изменённой подписью: 401

  • Авторизация по ролям: матрица роль на эндпоинт, привилегированные методы токеном низшей роли: 403

  • Чужие объекты по id (IDOR/BOLA) во всех методах, включая PUT и DELETE

  • Mass assignment и лишние поля в ответах

  • Жизненный цикл: выход отзывает токены, смена пароля, ротация refresh, брутфорс ограничен

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

  • Что вернуть на чужой заказ: 403 или 404?
  • Как проверить, что после выхода токен не работает?
  • Что проверишь в самом JWT?

Разбор

Я делю на две части. Аутентификация: запросы без токена, с мусором вместо токена, с просроченным, с токеном от другого окружения, с JWT, где поменял payload или поставил alg none: везде жду 401 и одинаковое сообщение, без подсказок, что именно не так. Авторизация: строю матрицу ролей и эндпоинтов и каждый привилегированный метод зову токеном роли ниже, жду 403. Отдельно IDOR: двумя пользователями пробую читать, менять и удалять объекты друг друга по id, это самый частый реальный баг. Потом mass assignment: добавляю в тело role или balance и смотрю, не изменилось ли. И жизненный цикл: после выхода и смены пароля старые токены не работают, refresh одноразовый, на подбор пароля стоит лимит. На вопрос, 403 или 404 на чужой объект, отвечу так: 404 не раскрывает, что объект существует, это допустимо, главное единообразие и отсутствие данных в ответе.

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

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

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