GuaritaGuarita
TorreRondasAppsLGPDPlantãoConfigurações
Free

Desbloqueie as análises com IA e o conserto pronto pra colar.

Ver planos
SC
Sua conta
Entre pra sincronizar
GuaritaCarregando…

Relatório de exemplo da Guarita — Missão de segurança

GuaritaDemo
▸ Demo · relatório de exemplo, com dados fictícios
Rodar no meu app →
← Todas as rondas
ronda concluída·14.2s·exemplo✦ análise com IA
app.exemplo.com.br

Missão: deixar o seu app seguro

↻ Nova ronda

Segurança

O nível de exposição do seu app e cada brecha que a ronda encontrou.

◎ Nível de exposição

78/100
ALTO

Resolvendo os 2 itens críticos, isso cai para ~22 (Baixo).

▸ O resumo da Guarita

Revisamos seu app inteirinho e a notícia é boa: dá pra ficar tranquilo rápido. Você já acertou em várias coisas — HTTPS, certificado e e-mail estão certos.

O que precisa de atenção agora são 2 brechas críticas: uma chave de administrador exposta e a proteção dos dados desligada. Juntas, elas deixam qualquer visitante ler e mudar os dados dos seus usuários. Parece assustador, mas o conserto é simples e está tudo explicado abaixo, com um prompt pronto pra colar na sua IA.

Quando os 2 itens críticos estiverem resolvidos, seu nível de exposição cai de Alto para Baixo.

Conclua os Objetivos da Missão abaixo e veja sua exposição cair em tempo real.

Críticas
2
Achados
5
Objetivos
0/5

▸ Objetivos da missão

0 de 5
Crítico
Crítico
Alto
Médio
Baixo

O que a ronda achou

Sem jargão. Cada achado explica o que é, por que importa e traz o conserto pronto pra colar na sua IA.

GravidadeCríticoAltoMédioBaixo
O que é

A service_role é a chave de administrador do seu Supabase. Ela está escrita no JavaScript que qualquer visitante baixa só de abrir seu site.

Evidência— o que a Guarita observou na ronda
eyJhbGciOiJIUzI1Ni…  ·  role: "service_role"  ·  exp: 2077428374  ·  fonte: app.exemplo.com.br/assets/index-CBWCsxTw.js
Por que importa

Com ela, qualquer pessoa pode ler, alterar ou apagar todos os dados do seu app — usuários, pedidos, tudo. É o acesso mais perigoso que existe.

✦ Prompt pra corrigir

Cole no Claude Code, Cursor, Lovable… — a ferramenta que você já usa — e a IA corrige pra você.

Minha aplicação está expondo a chave service_role do Supabase no front-end — uma falha CRÍTICA de segurança. Por favor: 1. Remova todo uso da service_role (SUPABASE_SERVICE_ROLE_KEY) do código do cliente/front-end. 2. No front, ao criar o cliente Supabase, use SOMENTE a chave anon (SUPABASE_ANON_KEY). 3. Se alguma ação precisa de privilégio de admin, mova-a para uma Edge Function / rota de servidor, com a service_role guardada como variável de ambiente secreta (nunca enviada ao navegador). Ao terminar, liste onde a service_role aparecia e o que você alterou.

O que é

A “proteção por linha” (RLS) da sua tabela users está desligada. Sem ela, a regra vale pra todo mundo: qualquer um vê tudo.

Evidência— o que a Guarita observou na ronda
GET /rest/v1/users?select=*  →  200 OK  ·  1.482 linhas retornadas
Por que importa

Hoje alguém consegue baixar a lista inteira de e-mails e dados dos seus 1.482 usuários sem nem fazer login.

✦ Prompt pra corrigir

Cole no Claude Code, Cursor, Lovable… — a ferramenta que você já usa — e a IA corrige pra você.

A tabela "users" do meu Supabase está com Row Level Security (RLS) DESATIVADO, deixando os dados de todos os usuários acessíveis publicamente. Por favor: 1. Ative o RLS na tabela users. 2. Crie políticas para que cada usuário acesse apenas os próprios registros (auth.uid() = id) em select, update e delete. 3. Revise as demais tabelas com dados de usuário e ative RLS + políticas equivalentes onde faltar. Gere o SQL de migração e explique em uma frase o que cada política faz.

O que é

Sua API aceita pedidos de qualquer site (o “CORS” está liberado pra todos com *).

Evidência— o que a Guarita observou na ronda
https://app.exemplo.com.br/rest/v1/  ·  Origin: https://evil.test  →  Access-Control-Allow-Origin: https://evil.test
Por que importa

Um site malicioso pode usar a sessão de quem está logado no seu app pra fazer ações em nome da pessoa (roubo de sessão).

✦ Prompt pra corrigir

Cole no Claude Code, Cursor, Lovable… — a ferramenta que você já usa — e a IA corrige pra você.

Minha API/Supabase aceita requisições de qualquer origem (CORS liberado com "*"), o que permite roubo de sessão. Por favor: 1. Restrinja o CORS para aceitar SOMENTE o meu domínio de produção (https://app.exemplo.com.br) e o localhost de desenvolvimento. 2. Atualize a configuração de Allowed Origins / o header Access-Control-Allow-Origin — nunca use "*". 3. No Supabase, ajuste as URLs permitidas em Auth - URL Configuration. Diga o que foi alterado.

O que é

Seu site não tem uma Content-Security-Policy — uma regra que bloqueia scripts não autorizados de rodarem na página.

Evidência— o que a Guarita observou na ronda
GET https://app.exemplo.com.br/  →  resposta sem o header Content-Security-Policy
O que é

O cookie de sessão não tem as marcas Secure e SameSite, que o protegem em trânsito.

Evidência— o que a Guarita observou na ronda
Set-Cookie em https://app.exemplo.com.br/  →  session=…; HttpOnly  (sem Secure, sem SameSite)

▸ O que seu app usa

⬡Supabasebanco de dados e loginchave exposta
☁Google Cloudarmazenamento de arquivospúblico
▲Vercelhospedagem do siteinterno
❯Lovabletecnologia detectada

✓ Você já acertou nisto

✓HTTPS ativo e certificado válido
✓Nenhuma chave do Stripe exposta
✓E-mail protegido contra falsificação (SPF)

Bom trabalho, comandante. Mantenha assim. 🛡️

Quer esse raio-x do seu app?

A ronda básica é grátis e ilimitada. Em segundos você vê o que está exposto.

Rodar no meu app →