Skanna en publik sida efter 25 sorters läckta hemligheter
Appar byggda med vibe coding skickar ofta nycklar till webbläsaren. Ange adressen till en enda sida du driver, så läser skannern den sidans HTML och de skriptfiler den länkar till efter API-nycklar, tokens och databas-URL:er som en besökare kan kopiera. Värden visas maskerade.
Resultat
Vad den här skanningen inte kan se
Skannern läser bara de filer som en besökares webbläsare laddar ner från sidan. Den ser inte hemligheter som stannar på servern, sidor bakom en inloggning, filer som laddas senare med import() eller source maps. Ett rent resultat är inget bevis för att appen är säker.
Alla 25 nyckeltyper
20 av dem är hemligheter som aldrig får nå en webbläsare. 5 är publika av design.
Nycklar som är markerade som publika, som en Supabase anon key, en Firebase apiKey eller en Stripe publishable key, är avsedda att finnas i webbläsaren. De är säkra bara så länge dina databasregler skyddar datan bakom dem.
| Nyckeltyp | ID | Allvarlighetsgrad | Slag |
|---|---|---|---|
| OpenAI API-nyckel | openai-key | Kritisk | Hemlig |
| Anthropic API-nyckel | anthropic-key | Kritisk | Hemlig |
| Stripe live secret key | stripe-secret | Kritisk | Hemlig |
| Stripe test secret key | stripe-test-secret | Medel | Hemlig |
| Stripe publishable key | stripe-publishable | Info | Publik av design |
| AWS access key id | aws-access-key | Hög | Hemlig |
| AWS secret access key | aws-secret | Kritisk | Hemlig |
| GitHub-token | github-token | Kritisk | Hemlig |
| Google API-nyckel | google-api-key | Info | Publik av design |
| Firebase web config apiKey | firebase-web-config | Info | Publik av design |
| Supabase service_role-nyckel | supabase-service-role-jwt | Kritisk | Hemlig |
| Supabase anon key | supabase-anon-jwt | Info | Publik av design |
| JSON Web Token | jwt-other | Låg | Hemlig |
| Supabase secret key | supabase-secret-key | Kritisk | Hemlig |
| Supabase publishable key | supabase-publishable-key | Info | Publik av design |
| Slack-token | slack-token | Kritisk | Hemlig |
| Slack webhook-URL | slack-webhook | Hög | Hemlig |
| SendGrid API-nyckel | sendgrid-key | Kritisk | Hemlig |
| Twilio API key sid | twilio-key | Hög | Hemlig |
| Mailgun API-nyckel | mailgun-key | Hög | Hemlig |
| Block med privat nyckel | private-key-block | Kritisk | Hemlig |
| Databas-URL med lösenord | database-url | Kritisk | Hemlig |
| npm-token | npm-token | Kritisk | Hemlig |
| Hugging Face-token | huggingface-token | Hög | Hemlig |
| Resend API-nyckel | resend-key | Hög | Hemlig |
Frågor
Vad läser secret scanner?
Den läser sidans HTML och upp till 14 skriptfiler som sidan länkar till, 3 MB sammanlagt, de första 512 KB av sidan och de första 1 MB av varje fil. Den letar efter kända nyckelformat, som API-nycklar, åtkomsttokens, privata nyckelblock och databas-URL:er med lösenord.
Var körs skanningen och hur lång tid tar den?
Skanningen körs i din webbläsare; vår server hämtar bara filerna åt den, en förfrågan per fil. Ingenting sparas. En skanning kan ta upp till ungefär en och en halv minut på en långsam webbplats.
Vad kan skannern inte se?
Hemligheter som bara finns på servern, sidor bakom en inloggning, chunkar som sidan laddar senare med import() och source maps. Den kan inte heller avgöra om en hittad nyckel fortfarande är aktiv. Ett rent resultat är inget bevis för att appen är säker.
Varför är vissa nycklar markerade som publika av design?
En Supabase anon- eller publishable-nyckel, en Firebase apiKey, en Google API-nyckel och en Stripe publishable key är gjorda för att skickas till webbläsaren. De identifierar ditt projekt och ger bara det som dina databasregler, API-begränsningar och serverkontroller tillåter. De rapporteras så att du kan bekräfta att de reglerna finns, inte för att själva nyckeln är en läcka.
Vad ska jag göra om en riktig hemlighet läcker?
Rotera den först: skapa en ny nyckel hos leverantören och återkalla den gamla. Flytta sedan den nya nyckeln till serverkod eller miljövariabler och publicera igen. Att ta bort nyckeln ur koden räcker inte, eftersom det gamla värdet finns kvar i tidigare builds, cachar och git-historik.
Varför läcker appar byggda med vibe coding nycklar så ofta?
Kod som skrivs snabbt med AI-verktyg anropar ofta ett betalt eller privilegierat API direkt från webbläsaren, och nyckeln hamnar i skriptet som varje besökare laddar ner. Säkerhet vid vibe coding börjar med att hålla sådana anrop på servern.