Auditar RLS e chaves expostas de um app vibe-coded com Supabase
Um agente de código lê seu repositório e as migrations, lista tabelas sem RLS, políticas permissivas demais e chaves secretas no front-end, e propõe as correções em SQL.
Passo a passo
- Abra o repositório no agente de código (Cline no VS Code funciona com modelos gratuitos via OpenRouter ou Gemini).
- Rode o prompt. O agente só deve ler, não aplicar nada sozinho.
- Revise o relatório e peça as migrations de correção uma por uma.
- Teste com duas contas diferentes e com usuário anônimo: um não pode ler os dados do outro.
- Se encontrar chave service_role no front ou no GitHub, gere uma nova no painel do Supabase imediatamente.
Prompt para copiar
Troque o que está entre [colchetes] pelos seus dados. Funciona em Cline, Claude Code, Codex, Antigravity, Cursor.
Você é um revisor de segurança. NÃO altere arquivos nem rode comandos destrutivos; apenas leia e relate. Projeto: app [descrição] com Supabase. Analise o repositório e: 1) Liste todas as tabelas (migrations/SQL/tipos) e diga para cada uma: RLS ligado? quais políticas? alguma usa "using (true)" ou permite UPDATE/DELETE para anon? 2) Procure no front-end, no .env commitado e no histórico do git: service_role, secret keys, chaves de API de OpenAI/Stripe etc. 3) Verifique se buckets do Storage e funções RPC/SECURITY DEFINER expõem dados. 4) Entregue um relatório em tabela: Problema | Arquivo/linha | Risco (alto/médio/baixo) | Correção sugerida (SQL ou código). 5) Por fim, um roteiro de teste manual com 2 usuários + anônimo.
O ângulo Brasil
A comunidade brasileira de vibe coding cresceu rápido e muitos apps vão ao ar sem RLS. Vazar dados de clientes também é problema de LGPD, não só técnico.
Cuidados
Rode só no seu próprio projeto. Escanear sites de terceiros sem autorização pode ser crime.
Perguntas frequentes
A chave anon/publishable no front é problema?
Não. Ela foi feita para ser pública, desde que o RLS esteja correto. O problema é a service_role/secret.
Prompt revisado em 18 de outubro de 2026. Resultados variam por agente e modelo; confira sempre a resposta antes de usar.