Получить доступ

Какие меры безопасности вы заложите при проектировании публичного REST API с личным кабинетом пользователя?

MiddleБезопасность приложения
Ещё спрашивают так:
  • Как обеспечить безопасность REST API?
  • Какие меры защиты нужны личному кабинету?
Коротко

По слоям: контроль доступа → аутентификация → ввод и транспорт → что отдаём наружу → эксплуатация.

  • Доступ: проверка владения в каждом запросе, запрет по умолчанию, различие 401 и 403
  • Аутентификация: argon2/bcrypt, короткий access и отзываемый refresh, лимит попыток входа, 2FA
  • Ввод: параметризованные запросы, валидация, лимиты размера и частоты, TLS

А ещё Наружу — код ошибки и correlation id вместо стектрейса; одинаковое сообщение при неверном логине и пароле

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Контроль доступа — самая частая уязвимость. Проверка владения ресурсом на сервере в каждом запросе (лучше в выборке из базы), модель запрета по умолчанию, централизованные политики для ролей. 401 — не аутентифицирован, 403 — нет прав (а для чужих ресурсов часто 404).

Аутентификация: пароли — argon2id или bcrypt с солью; короткоживущие access-токены и отзываемые refresh; фиксированный алгоритм подписи; ограничение попыток входа и защита от перебора (задержки, капча); двухфакторная аутентификация; безопасное восстановление пароля (одноразовые токены с коротким сроком).

Ввод и транспорт: параметризованные запросы против инъекций; валидация схемы и размера тела; ограничение частоты по ключу и IP; только HTTPS, HSTS; внутри периметра — mTLS; CORS только для своих источников; защита cookie: HttpOnly, Secure, SameSite.

Что отдаём: ошибки без стектрейсов и SQL — код и correlation id; одинаковый ответ на «нет пользователя» и «неверный пароль»; не отдавать лишние поля (массовое присвоение и раскрытие данных — явные DTO).

Эксплуатация: секреты в менеджере с ротацией; проверка зависимостей в сборке; журналирование событий безопасности (входы, смены пароля, отказы доступа) и алерты на аномалии; регулярные тесты на проникновение.

Что хотят услышать

  • Структурированный ответ по слоям.
  • Контроль доступа как главный риск.
  • Конкретные меры аутентификации и защиты ввода.
  • Утечки через ошибки и эксплуатационные меры.

Частые ошибки

  • Перечислять OWASP Top 10 без привязки к API.
  • Забыть про контроль доступа к объектам.

Что спросят дальше

  • Как вы обнаружите, что API уже атакуют?
  • Что такое zero trust и зачем mTLS внутри периметра?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем