Checklist de Segurança para Aplicações Web
Um checklist prático e neutro quanto a fornecedores para quem publica uma aplicação web, seja você quem escreveu cada linha à mão ou quem a construiu por prompts de IA ("vibe coding"). A IA escreve código que funciona no caminho feliz e mesmo assim entrega falhas reais, então uma funcionalidade que funciona não prova nada sobre segurança. Este checklist reúne o que realmente deve ser verificado antes e depois de colocar a aplicação no ar.
Ele é organizado por categoria. Comece por onde quiser, ou percorra na ordem. Cada página lista verificações concretas: o que testar, por que importa e como corrigir.
Como usar
- Trate cada item como um teste, não como leitura. Tente o ataque e depois confirme a correção.
- Teste com entradas inválidas e como o usuário errado, não apenas no fluxo normal.
- Depois que o código parecer correto, execute uma varredura contra a URL implantada para detectar qualquer regressão entre prompts.
Categorias
- Autenticação e sessões: como as pessoas provam quem são e como você as mantém conectadas sem deixar o token ser roubado.
- Autorização e controle de acesso: garantir que um usuário autenticado não consiga ler ou alterar dados que não são seus (IDOR, multi-tenancy).
- Validação de entrada e injeção: SQL injection, XSS, SSRF, desserialização insegura e uploads de arquivos.
- APIs e requisições: CSRF, CORS, mass assignment e ataques baseados no formato da requisição.
- Segredos e proteção de dados: chaves, criptografia em repouso e em trânsito, dados pessoais e direitos sobre os dados.
- Disponibilidade e abuso: rate limiting, negação de serviço e consumo descontrolado de recursos.
- Infraestrutura e implantação: portas e firewalls, contêineres, cabeçalhos de segurança, TLS e painéis administrativos expostos.
- Dependências, logs e processo: cadeia de suprimentos, segredos no git, tratamento de erros, monitoramento e testes independentes.
A versão curta
Se você tem só uma hora, verifique estes cinco primeiro. São os mais comuns e os mais danosos em auditorias reais:
- Controle de acesso quebrado. Faça login como usuário A e solicite o objeto do usuário B pelo id. Se ele voltar, você tem uma falha. Veja autorização.
- Segredos no cliente ou no git. Faça grep no bundle do navegador e no repositório em busca de chaves. Tudo o que foi commitado está comprometido. Veja segredos.
- Sem rate limiting no login. Força bruta é trivial sem isso. Veja disponibilidade.
- Falta de proteção contra CSRF ou login-CSRF. Veja APIs e requisições.
- Portas abertas além do firewall. Contêineres muitas vezes publicam portas ao redor do firewall. Veja infraestrutura.
Este checklist é publicado pela equipe do Arc OS. Aplicamos ele ao nosso próprio produto; você é livre para usá-lo no seu. É uma base inicial, não uma certificação, e não substitui um teste de penetração independente.