APIs vulneráveis são porta de entrada para hackers. Testes de segurança detectam SQL injection, auth bypass, IDOR. Automatize no CI/CD.
Conceitos Principais
OWASP Top 10 API
Broken auth, excessive data exposure, injection, lack of resources, broken function level auth. Guia de vulnerabilidades.
SQL Injection
Input malicioso em query. "' OR 1=1--". Test: envie payloads. Deve retornar 400, não dados.
Auth Testing
JWT expiration, token validation, RBAC. Test sem token, token expirado, token inválido.
Rate Limiting
Previne abuse. Test: 1000 requests rápidos. Deve retornar 429 Too Many Requests.
Passo a Passo
- Test SQL Injection: POST /users com body { "name": "' OR 1=1--" }. Deve retornar 400. Se retorna users, vulnerável.
- Test Auth Bypass: GET /admin sem token → 401. Token expirado → 401. Token de user comum → 403. Apenas admin token → 200.
- Test IDOR: GET /users/123 com token de user 456. Deve retornar 403. Se retorna data de 123, IDOR vulnerável.
- Test Rate Limiting: for (let i = 0; i < 1000; i++) { await fetch("/api"); }. Após X requests, deve retornar 429.
- OWASP ZAP: Proxy intercepta requests. Fuzz parameters. Scan automático de vulnerabilities. Report HTML.
Boas Praticas
Recomendacoes
• Test all OWASP Top 10
• Parametrized queries (previne SQL injection)
• Validate JWT properly
• Rate limit endpoints
• Input validation server-side
• HTTPS only
Erros Comuns
Evite estes erros
• Confiar em validation client-side
• Não testar auth em todos endpoints
• CORS misconfiguration
• Excessive data exposure
• Não implementar rate limiting
Checklist
- SQL injection testado
- Auth bypass testado
- IDOR testado
- Rate limiting funcionando
- OWASP ZAP scan executado
- Vulnerabilities corrigidas