O vibe coding — descrever o que você quer em linguagem natural e deixar uma IA construir — deixou de ser meme e virou a forma como boa parte dos novos apps web é publicada. Lovable, Cursor, Bolt, v0 e Replit transformam um prompt em um produto no ar numa tarde.

O problema: os geradores de código com IA são otimizados para produzir algo que funciona, não algo que é seguro. O app carrega, a demo roda, o founder publica — e a chave de API exposta, o banco com row-level security desligado e o endpoint de admin sem auth vão junto.

Por que apps vibe-coded são um risco de segurança

  • O modelo copia padrões inseguros. LLMs treinam com código público, incluindo milhões de tutoriais que hardcodam chaves e pulam a auth "por simplicidade".
  • Quem constrói não lê o código. Muitos vibe coders não são técnicos. Se a IA escreve // TODO: adicionar auth, ninguém adiciona.
  • Os defaults são permissivos. Um projeto novo do Supabase, um CORS aberto, um bucket público — o caminho fácil é o inseguro.
  • Publica na hora. Não há staging. A primeira versão é a de produção, exposta à internet.

As 7 vulnerabilidades mais comuns em vibe coding

#VulnerabilidadeO que falha
1Segredos expostosChaves de API e tokens hardcoded no cliente ou em .env commitados
2Auth ausente ou quebradaEndpoints que retornam dados sem verificar quem pergunta
3Row Level Security desligadoRLS do Supabase desativado: qualquer usuário consulta qualquer linha
4Segredos no clienteChaves service-role e lógica de admin enviadas ao navegador
5Sem rate limitingLogin, signup e pagamentos aceitam requests ilimitados
6Input sem validaçãoInput do usuário direto na query: injeção SQL, XSS
7Sem headers / CORS abertoSem CSP/HSTS, Access-Control-Allow-Origin: * em APIs autenticadas

Checklist de segurança para vibe coding

  • Segredos — nenhuma chave no cliente; nada de .env no git; rotacione qualquer chave exposta.
  • Auth — cada endpoint de dados verifica a sessão; sem rotas de admin acessíveis por usuários normais.
  • Banco de dados — RLS ativado em todas as tabelas; políticas que limitam linhas ao dono.
  • Input — tudo validado no servidor; queries parametrizadas.
  • Rate limiting — login, signup, reset e pagamentos limitados.
  • Headers — HTTPS, CSP, HSTS; CORS restrito às suas próprias origens.

Como escanear seu app vibe-coded

O Nurbak escaneia o app publicado e detecta exatamente esses problemas — segredos expostos, endpoints sem auth, tabelas com RLS desligado, headers faltando — e entrega um relatório priorizado. Cole sua URL e veja o resultado em segundos.

Artigos relacionados