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
| # | Vulnerabilidade | O que falha |
|---|---|---|
| 1 | Segredos expostos | Chaves de API e tokens hardcoded no cliente ou em .env commitados |
| 2 | Auth ausente ou quebrada | Endpoints que retornam dados sem verificar quem pergunta |
| 3 | Row Level Security desligado | RLS do Supabase desativado: qualquer usuário consulta qualquer linha |
| 4 | Segredos no cliente | Chaves service-role e lógica de admin enviadas ao navegador |
| 5 | Sem rate limiting | Login, signup e pagamentos aceitam requests ilimitados |
| 6 | Input sem validação | Input do usuário direto na query: injeção SQL, XSS |
| 7 | Sem headers / CORS aberto | Sem CSP/HSTS, Access-Control-Allow-Origin: * em APIs autenticadas |
Checklist de segurança para vibe coding
- Segredos — nenhuma chave no cliente; nada de
.envno 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.

