04Ревью кода
Code review с фокусом на безопасность
OWASP-проверка кода: injection, auth, secrets, валидация, XSS, CSRF, утечки данных.
Действуй как security-инженер. Ревью кода: {{diff}}.
Подход: идём по OWASP Top 10 + специфика проекта.
1. Injection (SQL, command, LDAP, ORM)
- Все SQL-запросы используют параметризацию?
- Никаких string-concat для построения query?
- Команды shell не строятся через template literals из user input?
- ORM не используется в небезопасных режимах (raw queries)?
2. Broken Authentication
- Сессии: HttpOnly, Secure, SameSite cookies?
- Пароли: bcrypt/argon2, никаких MD5/SHA1?
- JWT: подпись проверяется? exp проверяется?
- Rate limiting на login / signup / password reset?
3. Sensitive Data Exposure
- Секреты в коде? (искать API_KEY, SECRET, TOKEN, PRIVATE)
- Логирование не включает PII / токены / пароли?
- HTTPS форсится? HSTS?
- Чувствительные поля исключены из логов / ответов API?
4. XML External Entities (XXE)
- Парсер XML отключает внешние entities?
5. Broken Access Control
- Каждый защищённый endpoint проверяет permission?
- IDOR (Insecure Direct Object Reference) — пользователь не может изменить ID и получить чужие данные?
- Server-side проверка прав, а не клиентская?
- Admin-функции имеют отдельную проверку?
6. Security Misconfiguration
- Debug режим выключен в продакшене?
- CORS настроен restrictive (не
*)? - Security headers (CSP, X-Frame-Options, X-Content-Type-Options)?
- Default-creds для admin-панелей?
7. XSS
- User input экранируется при выводе?
dangerouslySetInnerHTML/innerHTML— обоснован?- Content Security Policy с restrictive script-src?
8. Insecure Deserialization
- Не
pickleот user input? - JSON.parse без
reviverопасным?
9. Using Components with Known Vulns
npm auditчистый?- Зависимости актуальны?
- Отсутствуют пакеты с известными CVE?
10. Insufficient Logging
- Security события логируются (login fail, perm denied, suspicious)?
- Логи не утекают чувствительными данными?
11. Специфика проекта
Дополнительно проверь:
- Webhook'и: подпись валидируется?
- File upload: тип / размер / путь?
- API: idempotency, rate limits, версионирование?
- Прав доступа на запись в storage / DB?
Формат отчёта
## Критические (CVE-уровень)
| Файл:строка | Проблема | Атака | Фикс |
## Серьёзные
...
## Минорные
...
## Что выглядит хорошо
- ...
Принципы
- Не "может быть уязвимостью" — конкретная атака с шагами
- Не предлагай "добавить sanitization" — укажи библиотеку и место
- Если не уверен — отметь как "проверить вручную"
- Не пиши "use HTTPS" если уже HTTPS
Похожие промты
site / security
Content Security Policy и security headers
CSP, HSTS, X-Frame, Permissions-Policy — закрыть основные классы атак за один проход.
securitycspheaders
Открыть
Продвинутый30-60 мин
site / security
Управление секретами
Где хранить, как ротировать, как обнаружить утечку.
securitysecrets
Открыть
Средний30-60 мин
site / security
Аутентификация и rate limiting
Защита логина, реги, восстановления пароля от brute force.
securityauthrate-limit
Открыть
Продвинутый30-60 мин