Testes de Segurança Básicos: O Que Todo QA Deveria Fazer
Script Injection, SQL Injection, XSS... Aprenda os testes de segurança básicos que TODO QA pode (e deve) fazer, sem ser especialista. Proteja seu sistema com testes simples.
Introdução
"Segurança não é minha responsabilidade, temos um time especializado para isso."
Se você pensa assim, precisa ler este artigo. Porque segurança É responsabilidade de todos, e existem testes básicos que TODO QA pode (e deve) fazer, sem ser especialista.
Neste artigo, você vai aprender os testes de segurança essenciais que previnem 80% dos problemas mais comuns. Não precisa ser hacker. Não precisa de ferramentas caras. Só precisa saber o que testar.
---
Por Que QA Deve Testar Segurança?
Realidade: A maioria das vulnerabilidades é descoberta em produção, não em testes. Por quê? Porque QAs acham que segurança não é com eles. Verdade: Testes básicos de segurança são tão importantes quanto testar se um botão funciona.---
1. Script Injection (XSS - Cross-Site Scripting)
O Que É?
Injetar código JavaScript malicioso em campos de entrada.
Por Que É Perigoso?
- Roubo de cookies/sessões
- Redirecionamento para sites maliciosos
- Modificação da página
- Roubo de dados do usuário
Como Testar?
Payload básico:
<script>alert('XSS')</script>
Onde testar:
<img src=x onerror=alert('XSS')>
<svg onload=alert('XSS')>
"><script>alert('XSS')</script>
---
2. SQL Injection
O Que É?
Injetar comandos SQL em campos de entrada para manipular o banco de dados.
Por Que É Perigoso?
Como Testar?
Payloads básicos:
' OR '1'='1
' OR 1=1--
admin'--
' UNION SELECT NULL--
Onde testar:
Campo de login:
Usuário: admin'--
Senha: qualquer coisa
Se logar sem senha válida = VULNERÁVEL!
---
3. HTML Injection
O Que É?
Injetar tags HTML em campos de entrada.
Diferença de XSS?
Como Testar?
Payloads:
<h1>Teste</h1>
<b>Negrito</b>
<marquee>Texto rolando</marquee>
O que observar:
---
4. Validação de Upload de Arquivos
Riscos:
O Que Testar?
4.1 Tipos de Arquivo
✅ Permitidos: .jpg, .png, .pdf
❌ Bloqueados: .exe, .php, .sh, .bat
Teste:
4.2 Tamanho Máximo
Teste com:
- Arquivo dentro do limite
- Arquivo no limite exato
- Arquivo acima do limite
4.3 Nomes Maliciosos
../../../etc/passwd
..\..\windows\system32\config
arquivo.jpg.exe (extensão dupla)
<script>alert('xss')</script>.jpg
4.4 Conteúdo vs Extensão
---
5. Autenticação e Autorização
5.1 Acesso Sem Login
Teste:5.2 Acesso a Recursos de Outros Usuários
Teste:5.3 Elevação de Privilégios
Teste:---
6. Exposição de Informações Sensíveis
6.1 Mensagens de Erro
❌ Ruim:
Erro: Query failed: SELECT * FROM users WHERE email='test@test.com'
✅ Bom:
Erro: Não foi possível processar sua solicitação.
6.2 Comentários no HTML
Verifique:6.3 Respostas de API
Teste:---
7. Força Bruta e Rate Limiting
O Que Testar?
Login:---
8. HTTPS e Cookies Seguros
8.1 HTTPS
Teste:8.2 Cookies
Verifique (DevTools → Application → Cookies):---
9. Validação de Entrada
Regra de Ouro:
NUNCA confie em dados do usuário!O Que Validar?
Servidor-side:---
10. Checklist de Segurança Básica
INJECTION:
☐ Script Injection (XSS) em todos os campos
☐ SQL Injection em campos de busca/login
☐ HTML Injection em campos de texto
UPLOAD:
☐ Tipos de arquivo permitidos/bloqueados
☐ Tamanho máximo
☐ Nomes maliciosos
☐ Validação de conteúdo
AUTENTICAÇÃO:
☐ Acesso sem login bloqueado
☐ Acesso a recursos de outros usuários bloqueado
☐ Elevação de privilégios bloqueada
EXPOSIÇÃO:
☐ Mensagens de erro genéricas
☐ Sem comentários sensíveis no HTML
☐ APIs não retornam dados extras
PROTEÇÃO:
☐ Limite de tentativas de login
☐ Rate limiting em APIs
☐ Proteção contra spam
HTTPS/COOKIES:
☐ Redirecionamento HTTP → HTTPS
☐ Cookies com Secure e HttpOnly
☐ Páginas críticas em HTTPS
---
Como Reportar Vulnerabilidades
❌ Não Faça:
✅ Faça:
Template de Reporte:
Título: XSS no campo de comentários
Severidade: Alta
Descrição:
Campo de comentários não sanitiza entrada, permitindo execução de JavaScript.
Passos para Reproduzir:
1. Acessar /comentarios
2. Inserir: <script>alert('XSS')</script>
3. Salvar comentário
4. Recarregar página
Resultado:
Popup aparece, indicando execução de script.
Impacto:
Atacante pode roubar cookies de sessão de outros usuários.
Sugestão:
Sanitizar entrada com htmlspecialchars() ou biblioteca equivalente.
---
Quando Escalar para Especialista?
Escale quando:---
Conclusão
Segurança não é "coisa de especialista". 80% das vulnerabilidades podem ser prevenidas com testes básicos que qualquer QA pode fazer.
Use este checklist em TODOS os seus projetos. Não espere o time de segurança. Não espere acontecer em produção.
Lembre-se: Um bug de funcionalidade é ruim. Uma vulnerabilidade de segurança pode ser catastrófica.---
Quer aprender mais sobre testes práticos?Inscreva-se no canal LiraQuality no YouTube
Encontrou uma vulnerabilidade e quer discutir?Acesse o fórum da comunidade (sem expor detalhes sensíveis!)
🧪 Exercícios Práticos
Agora é hora de colocar em prática o que você aprendeu!