Защита API: аутентификация, лимиты запросов и журналирование

Базовая защита API: проверка полномочий для каждого объекта, короткие токены, rate limiting, валидация, журналы и безопасные ошибки.

Наличие токена еще не делает API безопасным. Сервер должен проверять полномочия для каждого действия и объекта, ограничивать нагрузку и оставлять полезный след для расследования.

Идентификация и права

Используйте короткоживущие токены, проверяйте издателя, аудиторию и срок. Сервисная учетная запись получает только необходимые разрешения. Идентификатор объекта из запроса нельзя считать доказательством доступа.

Ограничьте ресурсы

  • rate limit по клиенту и операции
  • максимальный размер тела и файла
  • таймаут и предел выборки
  • квота на дорогие фоновые задачи

OWASP относит нарушения аутентификации и неограниченное потребление ресурсов к ключевым рискам в API Security Top 10.

Валидация и ошибки

Разрешайте ожидаемые поля, проверяйте типы и не возвращайте трассировку клиенту. Секреты не должны попадать в URL, ответы и логи.

Журналирование

Сохраняйте идентификатор запроса, клиента, результат авторизации, код ответа и длительность. Маскируйте токены и персональные данные. Алерт нужен на всплеск отказов, перебор и необычный объем.

Для обмена между системами добавьте идемпотентность и сверку, как в схеме интеграции CRM и 1С.