SmartQuery /ВОПРОС → ПРИМЕР → ПОНЯТНЫЙ ОТВЕТ
Тестирование

Чек-лист API: контракт, права и наблюдаемость

Проверяйте API по согласованному контракту и модели доступа. Чек-лист помогает выбрать сценарии, но не доказывает отсутствие всех уязвимостей.

Контракт и документация

  • Сверьте метод, путь, обязательные поля, типы и ограничения. Пример из документации должен выполняться на тестовых данных.
  • Проверьте корректный, пустой и неполный запрос; неизвестное поле и неверный тип.
  • Сверьте коды HTTP и структуру ошибки. В ответе не должно быть stack trace или внутренних секретов.

Аутентификация и авторизация

Для защищённого ресурса проверьте запрос без токена, с истёкшим токеном и от пользователя без нужной роли. После входа отдельно проверьте доступ к чужому объекту: изменение ID не должно давать чужие данные. Аутентификация не заменяет проверку прав.

Для браузерной cookie-сессии рассмотрите CSRF по модели угроз. Для XSS важен контекст, в котором клиент выводит данные. Нельзя применить одно слово «защита» одинаково ко всем API.

Данные и повторные запросы

  • Проверьте границы длины/числа, null, Unicode и SQL-подобные строки как данные, а не код.
  • Убедитесь, что ответ не содержит лишних свойств другого пользователя или внутренних полей.
  • Для операций создания проверьте дублирование запроса и ожидаемую идемпотентность.

Нагрузка и диагностика

Определите ожидаемые задержку, нагрузку и лимиты; измеряйте их в согласованной среде. Не проводите нагрузочную проверку чужого production без разрешения.

Журналируйте нужные события и корреляционный ID с ограничением объёма. Исключите токены, пароли, платёжные реквизиты и лишние персональные данные; контролируйте доступ и срок хранения. Проверяйте обработку недоступной зависимости и возможность связать ошибку с запросом без раскрытия тела запроса.

Документация