Recapitulação e prática
Principais lições
- Código gerado por IA é inseguro por padrão; assuma que existe uma vulnerabilidade e vá procurá-la em vez de confiar em uma primeira impressão limpa.
- As grandes categorias se repetem: injeção, segredos expostos, autorização ausente, uploads de arquivo inseguros e dependências inventadas.
- Autorização é por requisição, não por login — todo precisa verificar que este usuário pode fazer esta ação, não apenas que ele está logado.
- Rode um scanner de segredos como o
gitleaksantes de todo push, e rotacione qualquer chave que já tenha vazado; integre a varredura ao para que você não consiga pular. - O dia noventa é mais perigoso que o primeiro dia — torne o portão de segurança barato o suficiente para não pular e automático o suficiente para você não conseguir pular.
Mão na massa
Pegue qualquer funcionalidade sua que toque em autenticação, dados de usuário ou uploads e rode o de revisão adversarial abaixo contra ela. Para cada vulnerabilidade que a IA relatar, peça a requisição exata que a explora e a correção mínima, depois aplique a correção e rode o prompt de novo. Termine rodando o gitleaks (ou a varredura de segredos da sua plataforma) sobre o repositório e o histórico.
Prompt do capítulo
Aqui está o código de uma funcionalidade que lida com [autenticação / dados de usuário / uploads]:
[cole o código].
Aja como um atacante revisando isso em busca de falhas de segurança. Verifique especificamente:
- autorização quebrada (um usuário pode agir sobre os dados de outro usuário?)
- injeção via entrada (injeção de SQL, XSS, injeção de comando)
- segredos ou chaves expostos no código ou nas respostas
- manipulação insegura de arquivos (tipo, tamanho, caminho, nomes gerados)
- validação ausente ou limites de taxa ausentes
Para CADA problema, mostre a requisição exata que o explora, depois a correção.
NÃO me tranquilize — assuma que EXISTE uma vulnerabilidade e a encontre.