← todos os posts

Seu login funciona. Isso não quer dizer que os dados dos seus clientes estão protegidos.

A falha mais comum em app feito com IA não quebra nada, não aparece na tela e ninguém reclama. Tem um teste de cinco minutos que você faz sozinho, sem programar, pra saber se o seu app tem.

Vou te mostrar o teste primeiro, porque ele é curto e você pode rodar hoje. Depois explico por que ele importa mais do que qualquer outra coisa que você vai fazer no seu app essa semana.

O teste dos dois usuários

Você vai precisar de dois cadastros no seu próprio app e de dois navegadores diferentes — ou um normal e um em janela anônima.

Passo 1. Crie a conta A. Faça login. Crie alguma coisa que seja sua: um pedido, um cliente, uma nota, o que o seu app guarda.

Passo 2. Olhe o endereço na barra do navegador enquanto está vendo esse item. Muitas vezes ele termina com um identificador:

meuapp.com.br/pedido/1043

Anote esse número.

Passo 3. No outro navegador, crie a conta B. Faça login com ela. Confirme que a conta B não tem nada — lista vazia, tudo limpo.

Passo 4. Agora, logado como B, digite na barra de endereço o link do item da conta A:

meuapp.com.br/pedido/1043

Passo 5. Olhe o que aparece.

Se a tela disser que não existe, ou que você não tem permissão, ótimo. Se o pedido da conta A abrir na tela da conta B, você acabou de encontrar a falha mais comum em aplicação feita com IA.

E ela tem uma característica que faz dela a pior de todas: até você fazer esse teste, tudo parecia perfeito.

Por que o login não resolveu isso

Aqui vale traduzir duas palavras que quase sempre aparecem juntas e significam coisas diferentes. Se você levar só isso deste post, já valeu.

Autenticação é quem é você. É o login. O app conferiu e-mail e senha e sabe que você é você.

Autorização é o que você pode ver. É outra pergunta, feita depois, item por item: essa pessoa específica pode ver esse dado específico?

Quando você pede um app pra IA, ela quase sempre implementa a primeira com capricho — login, senha, recuperação, tudo bonitinho. A segunda ela costuma deixar pela metade, porque no caminho feliz do teste ela nunca aparece: quando só existe um usuário, todo dado é dele mesmo.

Aí você publica. Chega o segundo cliente. E o app, que nunca foi ensinado a perguntar "esse dado é seu?", entrega.

Essa falha tem nome técnico — os relatórios chamam de IDOR, ou falha de autorização por referência direta. Você não precisa decorar a sigla. Precisa lembrar da frase: trocar o número no endereço e ver o dado de outra pessoa.

A segunda versão do mesmo teste

Tem uma variação que pega mais gente ainda, e vale rodar junto.

Se o seu app tem qualquer coisa de administrador — painel, relatório, lista de todos os clientes, botão de exportar —, faça o seguinte: logado com uma conta comum, digite direto o endereço da área de admin.

meuapp.com.br/admin

Muita aplicação gerada por IA esconde o botão do admin de quem não é admin, e considera o trabalho feito. Esconder o botão não protege o endereço. Quem digitar entra.

A regra, em uma frase que você pode repetir pra IA: checar permissão na tela não vale; a checagem tem que acontecer no servidor, antes de o dado sair.

Terceiro teste: a chave que ficou no lugar errado

Esse é ainda mais rápido e não precisa de segunda conta.

Abra seu app publicado, clique com o botão direito, escolha "Exibir código-fonte da página" e use a busca (Ctrl+F ou Cmd+F). Procure por:

secret
service_role
api_key
sk_live

Se aparecer alguma chave de verdade ali, ela está pública. Qualquer visitante do seu site pode lê-la — não é preciso invadir nada, é só olhar.

Existem dois tipos de chave nesses serviços: uma pública, feita pra ficar no navegador, e uma secreta, que dá acesso total ao banco e só pode existir no servidor. A IA às vezes usa a secreta porque assim funciona de primeira e ela não precisa lidar com permissão nenhuma. Funciona lindamente. E deixa a porta escancarada.

Se você achou uma, o procedimento é: gerar uma chave nova no painel do serviço (isso invalida a antiga), guardar a nova como variável de ambiente no servidor, e nunca colar a secreta em nada que vá pro navegador.

"Mas quem ia se dar ao trabalho de mexer no meu app?"

Essa é a objeção que eu mais ouço, e ela parte de uma imagem errada do que acontece.

Ninguém escolheu você. Não tem uma pessoa sentada decidindo atacar o seu negócio. O que existe são programas automáticos varrendo a internet inteira, o dia todo, procurando endereço que responde e chave que ficou exposta. Eles não sabem se o seu app tem três usuários ou trinta mil. Eles sabem que a porta abriu.

Sobre o tamanho disso, alguns números medidos por gente que fez a conta:

  • Em outubro de 2025, a empresa Escape varreu mais de 5.600 aplicações feitas com IA e publicamente acessíveis. Encontrou mais de 2.000 vulnerabilidades, mais de 400 chaves de acesso expostas e 175 casos de dado pessoal à mostra — incluindo informação financeira e médica.
  • Em 2026, um estudo acadêmico montou um corpus de 10.517 aplicações feitas com IA, analisou 200 já publicadas e validou 1.471 vulnerabilidades, com falha de autorização e chave exposta entre os padrões que mais se repetiam.
  • A Veracode mediu o código gerado por mais de cem modelos em 2025 e de novo em março de 2026: nas duas vezes, cerca de 45% das tarefas introduziam uma falha de segurança conhecida — mesmo com o acerto sintático passando de 95% na segunda medição.

O que esses números dizem juntos não é "IA é ruim". É:

A IA ficou excelente em produzir código que roda. Não melhorou na mesma proporção em produzir código que protege.

E como falha de proteção não dá sintoma, ela só aparece quando alguém procura. Você procurando hoje é infinitamente melhor do que a alternativa.

E a LGPD?

Rápido e sem drama, porque isso costuma ser tratado ou como pânico ou como se não existisse.

Se o seu app guarda nome, e-mail, telefone, CPF, endereço ou qualquer dado de cliente, você é responsável por esse dado perante a LGPD. Não importa que a plataforma tenha gerado o código, nem que você não saiba programar. A responsabilidade é de quem decide o que é feito com o dado — ou seja, sua.

Isso não quer dizer que você precisa de um jurídico antes de publicar. Quer dizer que "eu não sabia" não é defesa, e que os três testes acima são o mínimo antes de convidar o primeiro cliente de verdade.

O que fazer com o que você encontrar

Se algum dos três testes acusou problema, o pedido pra IA precisa ser específico. "Melhore a segurança" não funciona — é vago demais, ela vai fazer qualquer coisa e dizer que resolveu.

Peça assim, um de cada vez:

"No servidor, antes de devolver o pedido, confira se ele pertence ao usuário que está logado. Se não pertencer, responda com erro de permissão, e não com o dado."

"Proteja a rota de admin no servidor, checando o papel do usuário. Esconder o botão na tela não basta."

"Tire a chave secreta do lado do navegador. Ela deve existir só como variável de ambiente no servidor."

E — isso é o mais importante — depois de cada correção, rode o teste dos dois usuários de novo você mesmo. Não aceite "pronto, corrigido" como resposta.

A IA dizer que consertou não é evidência de que consertou. Isso vale tanto que é o assunto do próximo post.