Vai al contenuto

Scansioni una pagina pubblica alla ricerca di 25 tipi di segreti esposti

Le app fatte con il vibe coding spesso mandano chiavi al browser. Inserisca l’indirizzo di una sola pagina sua e lo scanner legge l’HTML di quella pagina e i file di script collegati, alla ricerca di chiavi API, token e URL di database che un visitatore potrebbe copiare. I valori sono mostrati mascherati.

Pagina da scansionare

Una pagina, non l’intero sito.La scansione legge questo indirizzo e gli script che collega. Per controllare un’altra pagina, scansioni anche il suo indirizzo.

Confermi di essere una persona

Così le richieste automatiche restano fuori dal servizio.

Vengono scaricati solo i file pubblici dell’indirizzo inserito, dalla rete di Cloudflare. Non viene salvato nulla.

Risultato

Cosa questa scansione non può vedere

Lo scanner legge solo i file che il browser di un visitatore scarica dalla pagina. Non vede segreti che restano sul server, pagine dietro un login, file caricati più tardi con import() né source map. Un risultato pulito non dimostra che l’app sia sicura.

Tutti i 25 tipi di chiave

20 di questi sono segreti che non devono mai arrivare a un browser. 5 sono pubblici per progetto.

Le chiavi segnate come pubbliche, come una chiave anon di Supabase, una apiKey di Firebase o una chiave pubblicabile di Stripe, sono pensate per il browser. Sono sicure solo finché le regole del suo database proteggono i dati che stanno dietro.

Tipo di chiaveIDGravitàNatura
Chiave API di OpenAIopenai-keyCriticaSegreto
Chiave API di Anthropicanthropic-keyCriticaSegreto
Chiave segreta live di Stripestripe-secretCriticaSegreto
Chiave segreta di test di Stripestripe-test-secretMediaSegreto
Chiave pubblicabile di Stripestripe-publishableInfoPubblica per progetto
ID della chiave di accesso AWSaws-access-keyAltaSegreto
Chiave di accesso segreta AWSaws-secretCriticaSegreto
Token GitHubgithub-tokenCriticaSegreto
Chiave API di Googlegoogle-api-keyInfoPubblica per progetto
apiKey della configurazione web di Firebasefirebase-web-configInfoPubblica per progetto
Chiave service_role di Supabasesupabase-service-role-jwtCriticaSegreto
Chiave anon di Supabasesupabase-anon-jwtInfoPubblica per progetto
JSON Web Tokenjwt-otherBassaSegreto
Chiave segreta di Supabasesupabase-secret-keyCriticaSegreto
Chiave pubblicabile di Supabasesupabase-publishable-keyInfoPubblica per progetto
Token Slackslack-tokenCriticaSegreto
URL del webhook Slackslack-webhookAltaSegreto
Chiave API di SendGridsendgrid-keyCriticaSegreto
SID della chiave API di Twiliotwilio-keyAltaSegreto
Chiave API di Mailgunmailgun-keyAltaSegreto
Blocco di chiave privataprivate-key-blockCriticaSegreto
URL di database con passworddatabase-urlCriticaSegreto
Token npmnpm-tokenCriticaSegreto
Token Hugging Facehuggingface-tokenAltaSegreto
Chiave API di Resendresend-keyAltaSegreto

Domande

Cosa legge lo scanner di segreti?

Legge l’HTML della pagina e fino a 14 file di script collegati, 3 MB in totale, i primi 512 KB della pagina e i primi 1 MB di ciascun file. Cerca formati di chiave noti, come chiavi API, token di accesso, blocchi di chiave privata e URL di database con password.

Dove gira la scansione e quanto dura?

La scansione gira nel suo browser; il nostro server si limita a scaricare i file per lei, una richiesta per file. Non viene salvato nulla. Su un sito lento una scansione può durare fino a circa un minuto e mezzo.

Cosa non può vedere lo scanner?

Segreti che esistono solo sul server, pagine dietro un login, chunk che la pagina carica più tardi con import() e source map. Non può nemmeno sapere se una chiave trovata è ancora attiva. Un risultato pulito non dimostra che l’app sia sicura.

Perché alcune chiavi sono segnate come pubbliche per progetto?

Una chiave anon o pubblicabile di Supabase, una apiKey di Firebase, una chiave API di Google e una chiave pubblicabile di Stripe sono fatte per essere inviate al browser. Identificano il suo progetto e concedono solo ciò che permettono le regole del suo database, le restrizioni dell’API e i controlli del server. Vengono segnalate perché possa confermare che quelle regole esistono, non perché la chiave in sé sia una fuga.

Cosa devo fare se un segreto vero viene esposto?

Lo ruoti per prima cosa: crei una nuova chiave presso il fornitore e revochi la vecchia. Poi sposti la nuova chiave nel codice lato server o nelle variabili d’ambiente e faccia di nuovo il deploy. Cancellare la chiave dal codice non basta, perché il vecchio valore resta nelle build precedenti, nelle cache e nella cronologia di git.

Perché le app fatte con il vibe coding espongono chiavi così spesso?

Il codice scritto in fretta con strumenti di IA spesso chiama un’API a pagamento o privilegiata direttamente dal browser, e la chiave finisce nello script che ogni visitatore scarica. La sicurezza nel vibe coding comincia dal tenere queste chiamate sul server.