ZoraS · Guia

5 falhas em apps feitas com IA

O Cursor, o Lovable, o Bolt e o ChatGPT põem uma app no ar numa tarde. As mesmas cinco falhas aparecem vezes sem conta. Para cada uma tens aqui como a verificar tu mesmo, sem ferramentas pagas.

Falha 1

A chave da API vai parar ao browser

Variáveis com o prefixo NEXT_PUBLIC_, VITE_ ou REACT_APP_ são copiadas para o JavaScript que qualquer visitante descarrega. Se a chave da OpenAI ou a sk_live da Stripe tiver esse prefixo, está pública.

Verifica: abre a tua app, carrega em F12, vai a Sources e procura (Ctrl+Shift+F) por sk-, sk_live e secret. Se encontrares alguma, revoga-a já e passa a chamada para o servidor.

Falha 2

Supabase ou Firebase sem regras de acesso

A chave anon do Supabase pode ser pública, mas só se o Row Level Security estiver ligado em todas as tabelas. Sem RLS, qualquer pessoa lê e apaga os dados de todos os utilizadores com essa chave.

Verifica: no painel do Supabase, em Authentication → Policies, todas as tabelas devem dizer "RLS enabled" e ter pelo menos uma política. No Firebase, procura por allow read, write: if true nas regras.

Falha 3

A proteção existe só no ecrã

A IA esconde o botão "Admin" a quem não é administrador, mas a rota /api/admin continua a responder a qualquer pedido. Esconder no ecrã não é proteger.

Verifica: termina a sessão e abre diretamente os endereços das tuas rotas de API no browser ou com curl. Se alguma devolver dados, falta a verificação do lado do servidor.

Falha 4

O JWT é lido mas não é verificado

É comum o código gerado usar jwt.decode() em vez de jwt.verify(), ou assinar com um segredo como "secret". Assim, qualquer pessoa fabrica um token com "role": "admin".

Verifica: procura no código por decode( junto de tokens e pelo valor de JWT_SECRET. Deve ter pelo menos 32 caracteres aleatórios e nunca estar no repositório.

Falha 5

CORS aberto e nenhum limite de pedidos

Access-Control-Allow-Origin: * numa API com sessão, e nenhum limite de pedidos no login ou nas rotas que chamam a IA. Um robô pode testar milhares de passwords, ou gastar o teu saldo da OpenAI numa noite.

Verifica: no F12, em Network, abre um pedido à tua API e lê os cabeçalhos da resposta. Depois tenta o login errado 20 vezes seguidas: se nunca fores travado, não há limite.

Queres que eu verifique por ti?

VibeGuard: as 5 e mais, por 24,90 €.

Verifico chaves expostas, SQL injection, XSS, TLS, JWT e dependências. Recebes um relatório com a correção de cada problema em 3 dias úteis. Se o trabalho não for possível, devolvo o valor.