Por que o código gerado por IA precisa de revisão humana (e por que isso é ótimo)
Por Que o Código Gerado por IA Precisa de Revisão Humana (E Por Que Isso é Normal)
O desenvolvimento de software está mudando rápido. Ferramentas como Claude e ChatGPT transformam uma ideia em código rodando em dias, não semanas. Você descreve o que quer, aprova as mudanças, ajusta e lança. Isso acelera tudo de verdade.
Mas tem um porém.
Recentemente, revisei um código feito assim: uma ferramenta interna simples, nada crítico, mas típica do que muita gente entrega em 2024. Não era nada de AI "maluca". Eram 28 problemas comuns, a maioria ligados a segurança, do tipo que a OWASP Top 10 lista há 20 anos.
Não é sobre IA ser perigosa. É sobre como a velocidade de criar features pode ignorar o planejamento que evita dores de cabeça.
O Problema Não é a IA, é o Que Você Não Perguntou
O código era sólido. Arquitetura lógica, componentes bem divididos, bibliotecas certas. Se eu fizesse algo parecido num fim de semana, ficaria igual à primeira vista.
A falha está no planejamento inicial. Antes da primeira linha.
IA faz exatamente o que você manda. "Crie um sistema de usuários", e pronto. Mas não pergunta: quem acessa isso? Quais dados são sensíveis? Onde fica a autenticação? E se burlarem o frontend?
Ela entrega a feature. Não o design seguro que te deixa tranquilo.
Exemplo Claro: Função Admin Sem Proteção
Imagine uma função serverless para admins: criar usuários, resetar senhas, apagar contas. Básico. A equipe guardou credenciais no server, sem expor no browser. Acertaram nisso.
Mas sem checagem de autenticação.
Zero. Qualquer um abria DevTools, via o endpoint e mandava um POST para bagunçar tudo.
No frontend, tinha checagem que escondia o botão de não-admins. Parecia seguro. Mas era ilusão — segurança na interface não vale nada.
Clássico bypass de autorização, na lista de vulnerabilidades desde 2003. A IA não viu porque o prompt foi "crie função para admins criarem usuários". Ela fez. Sem dizer "só admins", permitiu todos.
Lições chave: IA não adivinha o que você esqueceu.
Banco de Dados Seguro no Papel
Outro caso comum. Seu banco tem row-level security (RLS) para limitar acesso por usuário. Ótimo para APIs com chaves no JS.
Um dev pediu multiusuário à IA. Ela criou tabelas novas com RLS certinho. Perfeito.
Mas as cinco tabelas antigas, com dados reais? Ignoradas. RLS talvez ativado, talvez não. A migração não tocou nelas.
Roda npm run db:push em infra nova e as velhas ficam expostas a qualquer um com a URL da API.
IA não errou. Foi incompleta. Resolveu o pedido estreito, sem questionar o resto.
Como Aplicar Isso no Dia a Dia
Não é contra usar IA. Velocidade conta. Mas exige revisão humana nas decisões de arquitetura, além da sintaxe.
O que funciona:
Crie checklist de segurança antes. Pergunte: quem chama esse endpoint? E se chamarem sem permissão? Dados abertos ao mundo? Todas tabelas com RLS? Documente suposições.
Sêniores fazem threat modeling, não só revisão linha por linha. Os 28 problemas eram falhas de design. IA gera código. Humanos pensam em riscos.
Seja explícito nos prompts sobre auth. Troque "crie endpoint de usuários" por "crie endpoint de usuários só para admin logado, e explique autenticação". Ajuda a IA mostrar raciocínio.
Teste autorização em separado. Verifique que não-autenticados não conseguem agir, além de autenticados conseguirem.
O Padrão Essencial
IA não cria código inseguro por si. Ela segue prompts à risca e ignora o não dito.
Isso é vantagem: obedece sem inventar. Mas a responsabilidade é sua. IA executa seu design de segurança em escala.
No código que revisei, bastou um humano dizer "precisa auth aqui". Arrumou em minutos. Vulnerabilidade antiga contra fluxo moderno — o humano venceu por estar atento.
Modelo ideal: IA para velocidade, humanos para arquitetura. Os dois são indispensáveis.
Quer fugir desses erros no seu projeto? Na NameOcean, vemos startups crescendo com dívidas técnicas de features rápidas. Nossa plataforma de cloud hosting traz segurança embutida: rate limiting, gerência de API keys e logs de auditoria sempre ativos, sem precisar pedir. Menos preocupação enquanto sua equipe voa.