Saltar para o conteúdo

Analise uma página pública à procura de 25 tipos de segredos expostos

As aplicações feitas por vibe coding enviam muitas vezes chaves para o navegador. Indique o endereço de uma só página sua e o scanner lê o HTML dessa página e os ficheiros de script que ela liga, à procura de chaves API, tokens e URLs de bases de dados que um visitante podia copiar. Os valores são mostrados mascarados.

Página a analisar

Uma página, não o site inteiro.A análise lê este endereço e os scripts que ele liga. Para verificar outra página, analise também o endereço dela.

Confirme que é uma pessoa

Isto mantém os pedidos automáticos fora do serviço.

Isto obtém apenas os ficheiros públicos do endereço indicado, a partir da rede da Cloudflare. Nada é guardado.

Resultado

O que esta análise não consegue ver

O scanner lê apenas os ficheiros que o navegador de um visitante descarrega da página. Não vê segredos que ficam no servidor, páginas atrás de um login, ficheiros carregados mais tarde por import() nem source maps. Um resultado limpo não prova que a aplicação é segura.

Os 25 tipos de chave

20 deles são segredos que nunca devem chegar a um navegador. 5 são públicos por definição.

As chaves marcadas como públicas, como uma chave anon do Supabase, uma apiKey do Firebase ou uma chave publicável do Stripe, destinam-se ao navegador. Só são seguras enquanto as regras da sua base de dados protegerem os dados por trás delas.

Tipo de chaveIDGravidadeNatureza
Chave API da OpenAIopenai-keyCríticaSegredo
Chave API da Anthropicanthropic-keyCríticaSegredo
Chave secreta live do Stripestripe-secretCríticaSegredo
Chave secreta de teste do Stripestripe-test-secretMédiaSegredo
Chave publicável do Stripestripe-publishableInfoPúblico por definição
ID de chave de acesso da AWSaws-access-keyAltaSegredo
Chave de acesso secreta da AWSaws-secretCríticaSegredo
Token do GitHubgithub-tokenCríticaSegredo
Chave API do Googlegoogle-api-keyInfoPúblico por definição
apiKey da configuração web do Firebasefirebase-web-configInfoPúblico por definição
Chave service_role do Supabasesupabase-service-role-jwtCríticaSegredo
Chave anon do Supabasesupabase-anon-jwtInfoPúblico por definição
JSON Web Tokenjwt-otherBaixaSegredo
Chave secreta do Supabasesupabase-secret-keyCríticaSegredo
Chave publicável do Supabasesupabase-publishable-keyInfoPúblico por definição
Token do Slackslack-tokenCríticaSegredo
URL de webhook do Slackslack-webhookAltaSegredo
Chave API do SendGridsendgrid-keyCríticaSegredo
SID de chave API do Twiliotwilio-keyAltaSegredo
Chave API do Mailgunmailgun-keyAltaSegredo
Bloco de chave privadaprivate-key-blockCríticaSegredo
URL de base de dados com palavra-passedatabase-urlCríticaSegredo
Token do npmnpm-tokenCríticaSegredo
Token do Hugging Facehuggingface-tokenAltaSegredo
Chave API do Resendresend-keyAltaSegredo

Perguntas

O que lê o scanner de segredos?

Lê o HTML da página e até 14 ficheiros de script que ela liga, 3 MB no total, os primeiros 512 KB da página e os primeiros 1 MB de cada ficheiro. Procura formatos de chave conhecidos, como chaves API, tokens de acesso, blocos de chave privada e URLs de bases de dados com palavra-passe.

Onde corre a análise e quanto tempo demora?

A análise corre no seu navegador; o nosso servidor apenas obtém os ficheiros para ela, um pedido por ficheiro. Nada é guardado. Num site lento, uma análise pode demorar até cerca de um minuto e meio.

O que não consegue o scanner ver?

Segredos que existem apenas no servidor, páginas atrás de um login, blocos que a página carrega mais tarde por import() e source maps. Também não consegue saber se uma chave encontrada ainda está ativa. Um resultado limpo não prova que a aplicação é segura.

Porque estão algumas chaves marcadas como públicas por definição?

Uma chave anon ou publicável do Supabase, uma apiKey do Firebase, uma chave API do Google e uma chave publicável do Stripe foram feitas para ser enviadas ao navegador. Identificam o seu projeto e só permitem o que as regras da sua base de dados, as restrições da API e as verificações do servidor autorizam. São indicadas para que possa confirmar que essas regras existem, não porque a chave em si seja uma fuga.

O que devo fazer se um segredo real for exposto?

Rode-o primeiro: crie uma chave nova no fornecedor e revogue a antiga. Depois passe a chave nova para código do lado do servidor ou variáveis de ambiente e volte a fazer o deploy. Apagar a chave do código não basta, porque o valor antigo continua em builds anteriores, caches e no histórico do git.

Porque é que as aplicações feitas por vibe coding expõem chaves com tanta frequência?

O código escrito depressa com ferramentas de IA chama muitas vezes uma API paga ou privilegiada diretamente a partir do navegador, e a chave acaba no script que todos os visitantes descarregam. A segurança no vibe coding começa por manter essas chamadas no servidor.