Relatório de segurança
https://meu-app.lovable.app
14 falhas encontradas• relatório completo
Quem tem este link vê o relatório completo — compartilhe com quem você confia (time, sócio, TI).
Esta nota é do escopo público — o que um visitante alcança sem login. Não entram aqui a área logada, o que roda no servidor, nem outros subdomínios (api., staging., admin.). O escopo completo está mais abaixo.
- 24
- páginas visitadas
- 1.010
- verificações executadas
- 14
- achados
Transparência do trabalho
O que a gente vasculhou
Varredura real, num navegador de verdade: 24 páginas abertas e 1.010 verificações executadas.
Páginas visitadas (24)
- https://meu-app.lovable.app/
- https://meu-app.lovable.app/login
- https://meu-app.lovable.app/cadastro
- https://meu-app.lovable.app/painel
- https://meu-app.lovable.app/conta
- https://meu-app.lovable.app/checkout
- 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/blog/post-1
- https://meu-app.lovable.app/blog/post-2
- 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
- https://meu-app.lovable.app/api/health
- https://meu-app.lovable.app/sitemap.xml
- https://meu-app.lovable.app/robots.txt
- https://api.meu-app.lovable.app/
- https://staging.meu-app.lovable.app/
- https://meu-app.lovable.app/assets/index.js
- https://meu-app.lovable.app/assets/vendor.js
Verificações por categoria
- Segredos expostos320
- Cabeçalhos HTTP170
- Arquivos sensíveis120
- Armazenamento no navegador90
- Banco de dados70
- DNS / e-mail60
- Bibliotecas de frontend50
- api40
- Cookies40
- CORS (origens cruzadas)20
- Transporte / TLS18
- Resiliência (CDN/WAF)12
Vá mais fundo
Isto foi só a superfície.
Este relatório cobre o que qualquer visitante alcança. A maior parte do risco mora depois do login: dados de um usuário aparecendo para outro, telas de admin abertas para quem não devia, permissões furadas. Suba de nível e a gente audita isso — pagando só a diferença.
Área logada (sessão de usuário)
Painel admin + escalada de privilégio
A auditoria logada precisa de uma sessão de acesso do seu sistema — a gente te guia no próximo passo (ou faz por você).
Plano de ação
Nesta ordem, e não em outra.
0→100
nota depois de tudo · ~6 h 45
a nota tem teto; a fatia de risco não
1Resolver hoje — é o que abre a porta
~4 h 10−93% do risco- Arquivo .env exposto20 min
- Segredo exposto: Stripe30 min
- Chave service_role do Supabase exposta35 min
- Banco Firebase aberto45 min
- Cookie de sessão sem HttpOnly15 min
- Segredo exposto: OpenAI25 min
- Balde de arquivos público40 min
- Dado pessoal no navegador40 min
2Esta semana — fecha as frestas
~1 h 45−5% do risco- DMARC ausente15 min
- Introspecção do GraphQL aberta20 min
- Biblioteca com falha conhecida30 min
- Content-Security-Policy ausente40 min
3Quando der — higiene e reputação
~50 min−1% do risco- Scripts sem verificação de integridade20 min
- Subdomínios esquecidos30 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 site
- 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.
Conformidade (indicativo)
Quais normas estes achados tocam
Os achados deste relatório mapeiam controles dos seguintes frameworks:
Mapeamento indicativo para orientar a correção — não é avaliação nem certificação de conformidade, e não substitui uma auditoria.
Consertar tudo de uma vez
Um único texto com as 14 correções, em ordem de gravidade. Escolha seu assistente, copie e cole uma vez só — sem ir falha por falha.
Chave service_role do Supabase exposta
A chave mestra do seu banco está no código que qualquer visitante baixa. Com ela, um estranho lê, altera e apaga tudo — ignorando qualquer regra de acesso que você criou.
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.
Segredo exposto: Stripe
A chave secreta do Stripe ficou no site. Dá para emitir reembolsos, puxar a lista dos seus clientes e mexer na sua conta de pagamentos — tudo no seu nome.
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.
Arquivo .env exposto
O arquivo .env está aberto ao público. É onde ficam todas as suas senhas e chaves de uma vez — o mapa do tesouro servido de bandeja.
Um arquivo que deveria ser privado (configuração, backup) está aberto na internet. É como deixar a chave debaixo do tapete, à vista de todos.
Banco Firebase aberto
Seu banco Firebase responde sem login. Qualquer um lê os dados dos seus usuários e, se a escrita também estiver aberta, edita — sem senha, sem barreira.
O banco de dados pode ser acessado direto, sem as regras de permissão. Na prática, dá para ler (ou alterar) dados de todos os usuários.
Cookie de sessão sem HttpOnly
O cookie que mantém o usuário logado pode ser lido por um script da página. Só isso já deixa um invasor entrar como se fosse ele.
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.
Dado pessoal no navegador
Dados pessoais dos seus clientes — cartão, CPF — ficam guardados no navegador, ao alcance de qualquer script. É vazamento e multa de LGPD esperando acontecer.
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.
Balde de arquivos público
Um balde de arquivos (S3/Storage) está listável. Documentos, uploads e backups que deviam ser privados podem ser listados e baixados um a um.
Um arquivo que deveria ser privado (configuração, backup) está aberto na internet. É como deixar a chave debaixo do tapete, à vista de todos.
Segredo exposto: OpenAI
Sua chave da OpenAI vazou no site. O consumo é de quem achar; a fatura, no fim do mês, é sua.
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.
Content-Security-Policy ausente
Sem CSP, um script injetado roda solto na sua página — roubando dados e sessões dos seus usuários sem aviso.
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.
Introspecção do GraphQL aberta
O mapa completo da sua API — todos os campos e operações — está público. Ele entrega o projeto pronto para quem quer atacar, antes mesmo de tentar.
Um endpoint do site está aberto ou aceitando ações perigosas. Pode ser usado para extrair dados ou abusar do sistema.
Biblioteca com falha conhecida
Seu site carrega uma biblioteca com falha pública já corrigida. É porta velha destrancada — os robôs sabem exatamente como entrar.
Uma biblioteca usada no site tem falha pública conhecida. É uma porta que os atacantes já sabem procurar.
DMARC ausente
Sem DMARC, qualquer um manda e-mail se passando pelo seu domínio. Quem cai no golpe é o seu cliente, e a confiança perdida é sua.
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.
Subdomínios esquecidos
Encontramos subdomínios que você deixou no ar (api., staging.). Cada um é uma porta a mais — e as esquecidas costumam ser as mais frágeis.
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.
Scripts sem verificação de integridade
Scripts de terceiros entram sem conferência de integridade. Se o fornecedor for comprometido, o código malicioso entra direto no seu site.
Uma biblioteca usada no site tem falha pública conhecida. É uma porta que os atacantes já sabem procurar.
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.