Scan en offentlig side for 25 slags lækkede hemmeligheder
Apps bygget med vibe coding sender ofte nøgler til browseren. Angiv adressen på én enkelt side, du driver, så læser scanneren den sides HTML og de scriptfiler, den linker til, efter API-nøgler, tokens og database-URL’er, som en besøgende kan kopiere. Værdier vises maskeret.
Resultat
Hvad denne scanning ikke kan se
Scanneren læser kun de filer, en besøgendes browser henter fra siden. Den kan ikke se hemmeligheder, der bliver på serveren, sider bag et login, filer der indlæses senere med import(), eller source maps. Et rent resultat er ikke bevis for, at appen er sikker.
Alle 25 nøgletyper
20 af dem er hemmeligheder, der aldrig må nå en browser. 5 er offentlige af design.
Nøgler markeret som offentlige, som en Supabase anon key, en Firebase apiKey eller en Stripe publishable key, er tiltænkt at ligge i browseren. De er kun sikre, så længe dine databaseregler beskytter dataene bag dem.
| Nøgletype | ID | Alvorlighed | Art |
|---|---|---|---|
| OpenAI API-nøgle | openai-key | Kritisk | Hemmelig |
| Anthropic API-nøgle | anthropic-key | Kritisk | Hemmelig |
| Stripe live secret key | stripe-secret | Kritisk | Hemmelig |
| Stripe test secret key | stripe-test-secret | Mellem | Hemmelig |
| Stripe publishable key | stripe-publishable | Info | Offentlig af design |
| AWS access key id | aws-access-key | Høj | Hemmelig |
| AWS secret access key | aws-secret | Kritisk | Hemmelig |
| GitHub-token | github-token | Kritisk | Hemmelig |
| Google API-nøgle | google-api-key | Info | Offentlig af design |
| Firebase web config apiKey | firebase-web-config | Info | Offentlig af design |
| Supabase service_role-nøgle | supabase-service-role-jwt | Kritisk | Hemmelig |
| Supabase anon key | supabase-anon-jwt | Info | Offentlig af design |
| JSON Web Token | jwt-other | Lav | Hemmelig |
| Supabase secret key | supabase-secret-key | Kritisk | Hemmelig |
| Supabase publishable key | supabase-publishable-key | Info | Offentlig af design |
| Slack-token | slack-token | Kritisk | Hemmelig |
| Slack webhook-URL | slack-webhook | Høj | Hemmelig |
| SendGrid API-nøgle | sendgrid-key | Kritisk | Hemmelig |
| Twilio API key sid | twilio-key | Høj | Hemmelig |
| Mailgun API-nøgle | mailgun-key | Høj | Hemmelig |
| Blok med privat nøgle | private-key-block | Kritisk | Hemmelig |
| Database-URL med adgangskode | database-url | Kritisk | Hemmelig |
| npm-token | npm-token | Kritisk | Hemmelig |
| Hugging Face-token | huggingface-token | Høj | Hemmelig |
| Resend API-nøgle | resend-key | Høj | Hemmelig |
Spørgsmål
Hvad læser secret scanner?
Den læser sidens HTML og op til 14 scriptfiler, som siden linker til, 3 MB i alt, de første 512 KB af siden og de første 1 MB af hver fil. Den leder efter kendte nøgleformater, som API-nøgler, adgangstokens, blokke med privat nøgle og database-URL’er med adgangskode.
Hvor kører scanningen, og hvor lang tid tager den?
Scanningen kører i din browser; vores server henter kun filerne til den, én forespørgsel pr. fil. Intet gemmes. En scanning kan tage op til cirka halvandet minut på et langsomt websted.
Hvad kan scanneren ikke se?
Hemmeligheder, der kun findes på serveren, sider bag et login, chunks som siden indlæser senere med import(), og source maps. Den kan heller ikke afgøre, om en fundet nøgle stadig er aktiv. Et rent resultat er ikke bevis for, at appen er sikker.
Hvorfor er nogle nøgler markeret som offentlige af design?
En Supabase anon- eller publishable-nøgle, en Firebase apiKey, en Google API-nøgle og en Stripe publishable key er lavet til at blive sendt til browseren. De identificerer dit projekt og giver kun det, som dine databaseregler, API-begrænsninger og serverkontroller tillader. De rapporteres, så du kan bekræfte, at de regler findes, ikke fordi selve nøglen er en lækage.
Hvad skal jeg gøre, hvis en rigtig hemmelighed lækker?
Roter den først: opret en ny nøgle hos udbyderen og tilbagekald den gamle. Flyt derefter den nye nøgle til serverkode eller miljøvariabler og udgiv igen. Det er ikke nok at slette nøglen fra koden, fordi den gamle værdi bliver i tidligere builds, caches og git-historik.
Hvorfor lækker apps bygget med vibe coding så ofte nøgler?
Kode skrevet hurtigt med AI-værktøjer kalder ofte et betalt eller privilegeret API direkte fra browseren, og nøglen havner i det script, som hver besøgende henter. Sikkerhed ved vibe coding begynder med at holde sådanne kald på serveren.