O portão de revisão de segurança
Aqui está o hábito único que transforma tudo isso, de uma preocupação, em um processo: antes de lançar, faça a IA atacar o próprio código. O modelo que escreveu a funcionalidade geralmente consegue encontrar os buracos nela — só que não vai fazer isso a menos que você peça. Vire a chave dele de construtor para adversário:
Você escreveu este endpoint. Agora aja como um atacante tentando quebrá-lo.
Liste todas as formas pelas quais um usuário malicioso poderia:
- ler ou modificar dados que não deveria (falhas de autorização)
- injetar código via entrada (injeção de SQL, XSS, injeção de comando)
- abusar de validação ausente ou limites de taxa
Para cada uma, mostre a requisição exata que explora isso, depois a correção.
Não me tranquilize — assuma que EXISTE uma vulnerabilidade e a encontre.
Essa última linha importa: deixado neutro, a IA tende a dizer "parece seguro!". Instruída a assumir que existe uma falha, ela de fato vai procurar. Combine a passagem adversarial com uma checklist curta de pré-lançamento que você roda em qualquer coisa voltada ao usuário:
- Todo verifica autorização, não apenas se o usuário está logado
- Todas as consultas ao banco de dados são parametrizadas — sem montado por string
- A entrada do usuário renderizada na página passa por escaping (sem injeção de HTML bruto)
- Nenhum segredo no código do cliente, e nenhum commitado no repositório
-
.envestá fora do ; qualquer chave vazada já foi rotacionada - Uploads de arquivo validam tipo e tamanho e usam nomes gerados
- Novas dependências foram checadas quanto à existência real e reputação
Imagine o portão como uma sequência que nada passa sem cumprir. A IA troca de chapéu de construtor para atacante, e depois as varreduras automatizadas cobrem o que uma passagem humana pode deixar passar:
código da funcionalidade
│
▼
┌──────────────────┐ "assuma que EXISTE um bug, encontre-o"
│ PASSAGEM │ falhas de autorização · injeção · validação
│ ADVERSARIAL │
│ (IA como atacante)│
└────────┬─────────┘
│ problemas encontrados? ── sim ──▶ corrigir ──┐
│ não │
▼ │
┌──────────────────┐ ◀───────────────────────────────── ┘
│ PORTÕES │ varredura de segredos (gitleaks) · npm audit
│ AUTOMATIZADOS │ parametrizado? · segredos fora do cliente?
│ (CI, todo push) │
└────────┬─────────┘
│ tudo verde
▼
LANÇAR ✓ ── qualquer coisa vermelha bloqueia o push ──
E rode um scanner de segredos antes de fazer push — uma ferramenta como o gitleaks (ou a varredura embutida da sua plataforma) vasculha seu código e histórico atrás de coisas com a forma de chaves. É uma rede de segurança de um único comando para o erro mais caro da lista, e você pode pedir para a IA integrá-la ao (Continuous Integration — o robô que roda suas verificações automaticamente a cada push de código) para que ela rode a cada push.