Самодиагностика по OWASP API Top 10
Текст ниже — тот же файл, что в репозитории:
docs/guides/OWASP_API_TOP10_SELF_CHECKLIST_RU.md (дубликат текста в src/data/owaspApiSelfChecklistRu.ts для сборки). Можно копировать в Confluence/Notion или
распечатать для ревью перед релизом.
# Самодиагностика API по OWASP API Security Top 10 (2023)
Краткий чек-лист для команд, которые хотят **сами** пройтись по поверхности рисков до или вместе с автоматическим сканом. Не заменяет пентест и не является исчерпывающим аудитом.
**Как пользоваться:** для каждого пункта ответьте «да / нет / не знаем». «Нет» и «не знаем» — кандидаты на разбор в бэклог безопасности.
---
## API1 — Broken Object Level Authorization (BOLA / IDOR)
- [ ] Для каждого эндпоинта с `{id}` / UUID проверено: пользователь **не может** подставить чужой идентификатор и получить чужие данные?
- [ ] Проверка прав выполняется **на сервере**, а не только скрытием кнопки в UI?
- [ ] Списки (list) и детали (get) используют **один и тот же** слой авторизации по объекту?
## API2 — Broken Authentication
- [ ] Нет «скрытых» эндпоинтов без аутентификации, кроме явно публичных?
- [ ] Токены/session: короткий TTL, refresh с ротацией, инвалидация при logout?
- [ ] Пароли: современный хеш, rate limit на логин, защита от credential stuffing?
## API3 — Broken Object Property Level Authorization
- [ ] Клиент **не может** прислать в JSON лишние поля (`role`, `isAdmin`, `balance`) и изменить то, что не должен?
- [ ] Используются DTO/allow-list полей на входе и на выходе?
## API4 — Unrestricted Resource Consumption
- [ ] Есть лимиты на число запросов, размер тела, тяжёлые отчёты, экспорт?
- [ ] Нет неограниченной вложенности/пагинации «до конца света» без курсоров/лимитов?
## API5 — Broken Function Level Authorization
- [ ] Роль «админ» / внутренние маршруты недоступны обычному пользователю даже при прямом вызове API?
- [ ] HTTP-методы (PUT/DELETE) и версии API проверяются так же, как GET?
## API6 — Unrestricted Access to Sensitive Business Flows
- [ ] Критичные действия (оплата, вывод средств, массовая рассылка) защищены step-up (2FA, CAPTCHA, лимиты по времени)?
- [ ] Нет возможности автоматизировать злоупотребление бизнес-логикой без трения?
## API7 — Server Side Request Forgery (SSRF)
- [ ] Если API принимает URL, IP или «вебхук», запросы уходят **только** в разрешённые хосты/сети?
- [ ] Запрещены ли обходы через редиректы, file://, внутренние метаданные облака?
## API8 — Security Misconfiguration
- [ ] Отключены debug-режимы, stack trace и лишние заголовки в проде?
- [ ] CORS, кэширование, заголовки безопасности согласованы с моделью API (не «*» там, где есть куки/токены)?
## API9 — Improper Inventory Management
- [ ] Известен полный список публичных и партнёрских API (включая legacy и `/internal`, если торчит наружу)?
- [ ] Есть процесс добавления нового эндпоинта в инвентаризацию и минимальный security-review?
## API10 — Unsafe Consumption of APIs
- [ ] Исходящие вызовы к сторонним API: TLS, проверка цепочки, таймауты, нет слепого следования редиректам?
- [ ] Секреты партнёров и ответы не логируются целиком?
---
## После прохода
1. Зафиксируйте открытые пункты в таск-трекере с приоритетом.
2. Прогоните **бесплатный скан** на staging: главная → «Проверить API».
3. Нужен разбор «под ключ» — страница экспресс-аудита https://sec-scanner.pro/audit или пилот по согласованию scope.
*Версия чек-листа: 2026-04-23. Сверяйте формулировки с официальным [OWASP API Security Top 10](https://owasp.org/www-project-api-security/).*