scanfull
Exemplo com dados fictícios — é assim que fica o relatório do seu app.

Relatório de segurança

https://meu-app.lovable.app

7 falhas encontradas

0/ 100Crítico
3
Crítico
1
Alto
3
Médio
0
Baixo
0
Informativo
12
páginas visitadas
486
verificações executadas
7
achados

Transparência do trabalho

O que a gente vasculhou

Varredura real, num navegador de verdade: 12 páginas abertas e 486 verificações executadas.

Páginas visitadas (12)
  • https://meu-app.lovable.app/
  • https://meu-app.lovable.app/login
  • https://meu-app.lovable.app/cadastro
  • https://meu-app.lovable.app/precos
  • https://meu-app.lovable.app/sobre
  • https://meu-app.lovable.app/contato
  • https://meu-app.lovable.app/blog
  • https://meu-app.lovable.app/termos
  • https://meu-app.lovable.app/privacidade
  • https://meu-app.lovable.app/faq
  • https://meu-app.lovable.app/recuperar-senha
  • https://meu-app.lovable.app/status
Verificações por categoria
  • Cabeçalhos HTTP150
  • Segredos expostos96
  • Arquivos sensíveis72
  • Armazenamento no navegador60
  • Cookies40
  • Transporte / TLS30
  • DNS / e-mail24
  • CORS (origens cruzadas)14

Relatório completo · US$ 19,90

Você já sabe o que está quebrado. Falta saber onde.

O relatório completo abre a prova de cada uma das 7 falhas: o arquivo e a linha exatos, o código antes e depois, o prompt pronto para o seu Claude Code, Cursor, Lovable ou Windsurf — e o reteste, que confirma no ar que acabou.

  • ✓ Onde está cada falha — arquivo, linha, endpoint
  • ✓ Prompt de correção por assistente + código antes/depois
  • ✓ Como verificar que a correção pegou
  • ✓ Reteste incluído: a segunda passada não custa nada
  • ✓ Relatório exportável, para arquivar ou entregar ao seu cliente
Ver relatório desbloqueado (exemplo)US$ 19,90 · pagamento único por scan · sem assinatura · reteste incluído

Plano de ação

Nesta ordem, e não em outra.

0100

nota depois de tudo · ~2 h 45

a nota tem teto; a fatia de risco não

  1. 1Resolver hoje — é o que abre a porta

    ~1 h 4092% do risco
    • Arquivo .env exposto20 min
    • Segredo exposto: Stripe30 min
    • Chave service_role do Supabase exposta35 min
    • Cookie de sessão sem HttpOnly15 min
  2. 2Esta semana — fecha as frestas

    ~1 h 058% do risco
    • Strict-Transport-Security ausente10 min
    • DMARC ausente15 min
    • Content-Security-Policy ausente40 min

Estimativas de ordem de grandeza, para um dev que conhece o projeto. A fatia de risco e a projeção da nota usam a mesma tabela de peso do scan — então o número aqui é o que o reteste vai mostrar.

Escopo desta análise

O que foi olhado — e, com a mesma clareza, o que não foi.

Entrou

  • As páginas públicas que o navegador alcançou a partir do endereço informado
  • Todo arquivo que o site entrega ao navegador — bundles, scripts, configuração
  • Cabeçalhos de resposta, cookies de sessão, política de CORS e a configuração de TLS
  • Registros de DNS de e-mail do domínio (SPF e DMARC)
  • Bibliotecas de frontend com falha pública conhecida
  • Arquivos sensíveis em caminhos conhecidos (.env, .git, backups)

Ficou de fora

  • Tudo que só existe depois do login — não autenticamos no seu app
  • O código que roda no servidor: injeção de SQL, lógica de negócio, permissões entre usuários
  • Dependências do servidor — daqui de fora só enxergamos o que o navegador baixa
  • Infraestrutura fora do site: portas de banco, buckets, painéis em outros subdomínios
  • O que você publicar depois deste scan — a superfície muda a cada deploy
  • O teste ativo do banco, que exige verificação do domínio

Nenhum scan torna um sistema seguro — este fecha as portas que estão abertas para quem chega de fora, sem senha e sem conhecimento técnico, que é por onde a maioria dos incidentes em aplicações novas realmente acontece. A superfície muda a cada publicação: um scan é uma foto, não um seguro.

Chave service_role do Supabase exposta

Uma chave que ignora toda a RLS está acessível no navegador.

Dados sensíveis (como o token de login) estão guardados no navegador de um jeito que outro script consegue ler — e roubar o acesso.

OWASP A07:2021CWE-522LGPD art. 46~35 min
Crítico
storage.service-key· 1 localCorreção bloqueada

Segredo exposto: Stripe

Chave secreta do Stripe encontrada no bundle JavaScript.

Uma senha ou chave de acesso ficou visível no código do site. Quem abrir a página encontra — e pode usar sua conta, gastar no seu nome ou ler seus dados.

OWASP A07:2021CWE-798LGPD art. 46~30 min
Crítico
secrets.stripe-secret-key· 1 localCorreção bloqueada

Arquivo .env exposto

O arquivo de variáveis de ambiente está acessível publicamente.

Um arquivo que deveria ser privado (configuração, backup) está aberto na internet. É como deixar a chave debaixo do tapete, à vista de todos.

OWASP A05:2021CWE-538LGPD art. 46~20 min
Crítico
files.env-exposed· 1 localCorreção bloqueada

Cookie de sessão sem HttpOnly

Um XSS consegue ler o cookie de sessão.

O cookie que mantém o usuário logado está sem proteção. Isso facilita roubar a sessão e entrar no sistema como se fosse ele.

OWASP A05:2021CWE-1004LGPD art. 46~15 min
Alto
cookies.session-not-httponly· 1 localCorreção bloqueada

Content-Security-Policy ausente

Sem CSP, uma injeção de script executa sem restrição.

Faltam proteções básicas que o navegador usa para barrar ataques. Sem elas, fica mais fácil injetar código malicioso ou "sequestrar" a tela do usuário.

OWASP A05:2021CWE-693~40 min
Médio
headers.csp-missing· 1 localCorreção bloqueada

DMARC ausente

Sem DMARC, dá para enviar phishing se passando pelo seu domínio.

Faltam travas no e-mail do seu domínio. Sem elas, golpistas conseguem enviar e-mail "em nome" da sua empresa (phishing) — e seus clientes caem no golpe.

OWASP A05:2021CWE-290~15 min
Médio
dns.dmarc-missing· 1 localCorreção bloqueada

Strict-Transport-Security ausente

A conexão pode ser rebaixada para HTTP.

Faltam proteções básicas que o navegador usa para barrar ataques. Sem elas, fica mais fácil injetar código malicioso ou "sequestrar" a tela do usuário.

OWASP A05:2021CWE-319~10 min
Médio
headers.hsts-missing· 1 localCorreção bloqueada

Classificações OWASP e CWE são referências técnicas públicas. O selo de LGPD é indicativo — sinaliza achados que podem deixar dado pessoal ao alcance de terceiros e não substitui avaliação jurídica.

Exemplo de relatório — Scanfull — Scanfull