OWASP Top 10 для тестировщика: что должен знать каждый QA
Security testing — это не только специализированные pentester’ы. Базовые уязвимости из OWASP Top 10 должен уметь проверять каждый QA-инженер. Это не «бонусные навыки» — это базовая профессиональная гигиена в 2026 году.
Top 10 — кратко
A01: Broken Access Control
Юзер A может видеть данные юзера B. Самая часто эксплуатируемая уязвимость.
Как тестировать QA:
- Залогинься как user1 → получи URL
/api/users/1/orders. - Замени
1на2→ должен быть 403, а не данные user2. - Залогинься админом → копируй cookie/token → попробуй с обычным юзером → не должно работать.
A02: Cryptographic Failures
Пароли хранятся в plaintext или со слабым хешем. HTTPS не везде.
Как тестировать:
- Network tab → все ли запросы HTTPS? Хоть один HTTP — баг.
- Cookies →
SecureиHttpOnlyфлаги установлены? - Если есть доступ к БД (на dev) — пароли хешированы (bcrypt/argon2)?
A03: Injection
SQL, NoSQL, LDAP, command injection.
Как тестировать:
- В поля ввода:
' OR 1=1--,'; DROP TABLE users--,<script>alert(1)</script>. - Если падает 500 или возвращает странное — потенциальная injection.
A04: Insecure Design
Архитектурные проблемы. Например, нет rate limiting на login → brute force возможен.
Как тестировать:
- 100 раз подряд введи неправильный пароль → есть ли блокировка?
- Reset password через email → можно ли сделать 1000 запросов?
A05: Security Misconfiguration
Дефолтные пароли, открытые админ-панели, дебаг-режим в проде.
Как тестировать:
- Известные пути:
/admin,/.git,/swagger-ui,/api/docs— доступны без auth? - Server header (
X-Powered-By) выдаёт версию фреймворка? - Stack trace показывается на 500 errors?
A06: Vulnerable Components
Старые библиотеки с CVE.
Как тестировать:
npm audit/pip-auditпоказывает critical vulnerabilities?- В team workflow — есть Dependabot / Renovate?
A07: Identification and Authentication Failures
Слабая auth: short passwords accepted, no MFA, session timeout не работает.
Как тестировать:
- Минимальная длина пароля — какая? «1» проходит?
- После logout — можно ли с тем же session token зайти снова?
- MFA: если включена — обходится ли через альтернативный flow?
A08: Software and Data Integrity Failures
Auto-update без проверки подписи, deserialization без validation.
A09: Security Logging and Monitoring Failures
Атаку случилась → но в логах ничего → команда не узнала.
Как тестировать:
- Попробуй login с неправильным паролем 100 раз → есть ли алерт?
- Что логируется при успешном login? IP, user-agent, timestamp?
A10: Server-Side Request Forgery (SSRF)
Сервер делает запросы по URL, который контролирует юзер.
Как тестировать:
- Поле для URL-картинки → введи
http://localhost:8080/admin→ сервер делает запрос внутрь.
Тулзы для QA
— OWASP ZAP — бесплатный, прокси + автоматический сканер. Каждый QA должен попробовать хотя бы раз.
— Burp Suite Community — стандарт для security professionals. Free edition достаточна для базовых проверок.
— Proxyman / Charles — для перехвата запросов и подмены параметров ('OR 1=1-- вместо нормального значения).
— Postman / Bruno — для повторения подозрительных запросов.
Чек-лист QA на security
✅ Авторизация: попробуй доступ чужими ID — должно отказывать.
✅ Все запросы — HTTPS. В Network tab проверь.
✅ Inputs: спецсимволы, SQL фрагменты, XSS-payload — не падает 500, не возвращает странное.
✅ Rate limiting на login и password reset.
✅ Session: после logout старый token не работает.
✅ Error messages: на 500 stack trace не показывается.
✅ Хранение паролей: проверь хеш в БД (на dev).
✅ npm audit / pip-audit — нет critical?
Когда передавать pentester’у
QA не заменяет security-инженера. После твоей базовой проверки — release-критичные фичи (auth, payments, новые API) должны пройти полноценный security audit.
Подробнее: OWASP Top 10, OWASP Testing Guide.