service_role do Supabase, sk_live da Stripe, access keys da AWS, tokens do GitHub, chaves PEM e connection strings de Postgres. O Shield varre os assets estáticos do seu app e encontra credenciais que deveriam estar no backend.
O scanner baixa os chunks JavaScript servidos publicamente e aplica padrões regex específicos para cada tipo de credencial. Nenhuma modificação no seu app, apenas leitura de assets que já são públicos.
# Detecta chaves Supabase service_role no bundle público.
# Se o grep casa, a chave está exposta para qualquer visitante.
curl -s https://seu-app.com/_next/static/chunks/main.js \
| grep -oE 'eyJ[A-Za-z0-9_-]{40,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+' \
| while read jwt; do
role=$(echo "$jwt" | cut -d. -f2 | base64 -d 2>/dev/null | grep -o '"role":"[^"]*"')
echo "$role → $jwt" | head -c 80
echo
doneProcura por JWTs com claim `role: service_role` nos artefatos estáticos servidos ao navegador.
Ver detalhes →Detecta chaves secretas da Stripe (`sk_live_…`) nos assets do frontend.
Ver detalhes →Casa o padrão `AKIA[0-9A-Z]{16}` em qualquer blob estático.
Ver detalhes →Procura padrões de tokens pessoais e de aplicativo do GitHub.
Ver detalhes →Casa blocos `-----BEGIN … PRIVATE KEY-----` (RSA, EC, OpenSSH).
Ver detalhes →Decodifica JWTs encontrados no bundle e alerta quando a janela `exp - iat` é absurdamente longa.
Ver detalhes →Procura connection strings de Postgres com credenciais embutidas em blobs.
Ver detalhes →Cole a URL do seu app. Em menos de 60 segundos, você sabe o que está exposto.