Skann en offentlig side etter 25 typer lekkede hemmeligheter
Apper laget med vibe coding sender ofte nøkler til nettleseren. Oppgi adressen til én enkelt side du driver, så leser skanneren HTML-en til den siden og skriptfilene den lenker til, på jakt etter API-nøkler, tokens og database-URL-er som en besøkende kan kopiere. Verdier vises maskert.
Resultat
Hva denne skanningen ikke kan se
Skanneren leser bare filene en besøkendes nettleser laster ned fra siden. Den ser ikke hemmeligheter som blir på serveren, sider bak innlogging, filer som lastes senere med import() eller source maps. Et rent resultat er ikke bevis for at appen er trygg.
Alle 25 nøkkeltyper
20 av dem er hemmeligheter som aldri må nå en nettleser. 5 er offentlige av design.
Nøkler merket som offentlige, som en Supabase anon key, en Firebase apiKey eller en Stripe publishable key, er ment å ligge i nettleseren. De er trygge bare så lenge databasereglene dine beskytter dataene bak dem.
| Nøkkeltype | ID | Alvorlighetsgrad | Slag |
|---|---|---|---|
| OpenAI API-nøkkel | openai-key | Kritisk | Hemmelig |
| Anthropic API-nøkkel | anthropic-key | Kritisk | Hemmelig |
| Stripe live secret key | stripe-secret | Kritisk | Hemmelig |
| Stripe test secret key | stripe-test-secret | Middels | Hemmelig |
| Stripe publishable key | stripe-publishable | Info | Offentlig av design |
| AWS access key id | aws-access-key | Høy | Hemmelig |
| AWS secret access key | aws-secret | Kritisk | Hemmelig |
| GitHub-token | github-token | Kritisk | Hemmelig |
| Google API-nøkkel | google-api-key | Info | Offentlig av design |
| Firebase web config apiKey | firebase-web-config | Info | Offentlig av design |
| Supabase service_role-nøkkel | supabase-service-role-jwt | Kritisk | Hemmelig |
| Supabase anon key | supabase-anon-jwt | Info | Offentlig av design |
| JSON Web Token | jwt-other | Lav | Hemmelig |
| Supabase secret key | supabase-secret-key | Kritisk | Hemmelig |
| Supabase publishable key | supabase-publishable-key | Info | Offentlig av design |
| Slack-token | slack-token | Kritisk | Hemmelig |
| Slack webhook-URL | slack-webhook | Høy | Hemmelig |
| SendGrid API-nøkkel | sendgrid-key | Kritisk | Hemmelig |
| Twilio API key sid | twilio-key | Høy | Hemmelig |
| Mailgun API-nøkkel | mailgun-key | Høy | Hemmelig |
| Blokk med privat nøkkel | private-key-block | Kritisk | Hemmelig |
| Database-URL med passord | database-url | Kritisk | Hemmelig |
| npm-token | npm-token | Kritisk | Hemmelig |
| Hugging Face-token | huggingface-token | Høy | Hemmelig |
| Resend API-nøkkel | resend-key | Høy | Hemmelig |
Spørsmål
Hva leser secret scanner?
Den leser sidens HTML og opptil 14 skriptfiler siden lenker til, 3 MB til sammen, de første 512 KB av siden og de første 1 MB av hver fil. Den leter etter kjente nøkkelformater, som API-nøkler, tilgangstokens, blokker med privat nøkkel og database-URL-er med passord.
Hvor kjører skanningen, og hvor lang tid tar den?
Skanningen kjører i nettleseren din; serveren vår henter bare filene for den, én forespørsel per fil. Ingenting lagres. En skanning kan ta opptil omtrent halvannet minutt på et tregt nettsted.
Hva kan ikke skanneren se?
Hemmeligheter som bare finnes på serveren, sider bak innlogging, chunks som siden laster senere med import(), og source maps. Den kan heller ikke avgjøre om en funnet nøkkel fortsatt er aktiv. Et rent resultat er ikke bevis for at appen er trygg.
Hvorfor er noen nøkler merket som offentlige av design?
En Supabase anon- eller publishable-nøkkel, en Firebase apiKey, en Google API-nøkkel og en Stripe publishable key er laget for å sendes til nettleseren. De identifiserer prosjektet ditt og gir bare det databasereglene, API-begrensningene og serverkontrollene dine tillater. De rapporteres slik at du kan bekrefte at disse reglene finnes, ikke fordi selve nøkkelen er en lekkasje.
Hva bør jeg gjøre hvis en ekte hemmelighet lekker?
Roter den først: lag en ny nøkkel hos leverandøren og tilbakekall den gamle. Flytt deretter den nye nøkkelen til serverkode eller miljøvariabler og publiser på nytt. Det holder ikke å slette nøkkelen fra koden, fordi den gamle verdien blir liggende i tidligere builds, cacher og git-historikk.
Hvorfor lekker apper laget med vibe coding nøkler så ofte?
Kode som skrives raskt med AI-verktyg kaller ofte et betalt eller privilegert API rett fra nettleseren, og nøkkelen havner i skriptet som hver besøkende laster ned. Sikkerhet ved vibe coding starter med å holde slike kall på serveren.