Pereiti prie turinio

Nuskaitykite viešą puslapį dėl 25 rūšių nutekėjusių paslapčių

Programos, sukurtos vibe coding būdu, dažnai siunčia raktus į naršyklę. Įveskite vieno savo puslapio adresą, o skeneris perskaito to puslapio HTML ir susietus scenarijų failus, ieškodamas API raktų, žetonų ir duomenų bazių URL, kuriuos lankytojas galėtų nukopijuoti. Reikšmės rodomos užmaskuotos.

Nuskaitomas puslapis

Vienas puslapis, ne visa svetainė.Skenavimas nuskaito šį adresą ir jo susietus scenarijus. Norėdami patikrinti kitą puslapį, nuskaitykite ir jo adresą.

Patvirtinkite, kad esate žmogus

Tai neleidžia automatinėms užklausoms apkrauti paslaugos.

Atsisiunčiami tik įvesto adreso vieši failai, tai daro Cloudflare tinklas. Niekas nesaugoma.

Rezultatas

Ko šis nuskaitymas nemato

Skeneris skaito tik failus, kuriuos lankytojo naršyklė atsisiunčia iš puslapio. Jis nemato paslapčių, kurios lieka serveryje, puslapių už prisijungimo, failų, vėliau įkeliamų per import(), ir source map. Švarus rezultatas nėra įrodymas, kad programa saugi.

Visos 25 raktų rūšys

Paslaptys, kurios niekada neturi patekti į naršyklę: 20. Vieši tyčia: 5.

Raktai, pažymėti kaip vieši, pavyzdžiui, Supabase anon raktas, Firebase apiKey ar Stripe publishable raktas, skirti naršyklėje. Jie saugūs tik tol, kol už jų esančius duomenis saugo jūsų duomenų bazės taisyklės.

Rakto rūšisIDSvarbaPobūdis
OpenAI API raktasopenai-keyKritinėPaslaptis
Anthropic API raktasanthropic-keyKritinėPaslaptis
Stripe veikiantis slaptas raktasstripe-secretKritinėPaslaptis
Stripe bandomasis slaptas raktasstripe-test-secretVidutinėPaslaptis
Stripe publishable raktasstripe-publishableInfoViešas tyčia
AWS prieigos rakto idaws-access-keyAukštaPaslaptis
AWS slaptas prieigos raktasaws-secretKritinėPaslaptis
GitHub žetonasgithub-tokenKritinėPaslaptis
Google API raktasgoogle-api-keyInfoViešas tyčia
Firebase žiniatinklio konfigūracijos apiKeyfirebase-web-configInfoViešas tyčia
Supabase service_role raktassupabase-service-role-jwtKritinėPaslaptis
Supabase anon raktassupabase-anon-jwtInfoViešas tyčia
JSON Web Tokenjwt-otherŽemaPaslaptis
Supabase secret raktassupabase-secret-keyKritinėPaslaptis
Supabase publishable raktassupabase-publishable-keyInfoViešas tyčia
Slack žetonasslack-tokenKritinėPaslaptis
Slack webhook URLslack-webhookAukštaPaslaptis
SendGrid API raktassendgrid-keyKritinėPaslaptis
Twilio API rakto sidtwilio-keyAukštaPaslaptis
Mailgun API raktasmailgun-keyAukštaPaslaptis
Privataus rakto blokasprivate-key-blockKritinėPaslaptis
Duomenų bazės URL su slaptažodžiudatabase-urlKritinėPaslaptis
npm žetonasnpm-tokenKritinėPaslaptis
Hugging Face žetonashuggingface-tokenAukštaPaslaptis
Resend API raktasresend-keyAukštaPaslaptis

Klausimai

Ką paslapčių skeneris skaito?

Jis skaito puslapio HTML ir iki 14 scenarijų failų, į kuriuos puslapis nurodo, iš viso 3 MB: pirmus 512 KB puslapio ir pirmus 1 MB kiekvieno failo. Ieško žinomų raktų formatų, pavyzdžiui, API raktų, prieigos žetonų, privačių raktų blokų ir duomenų bazių URL su slaptažodžiu.

Kur vyksta nuskaitymas ir kiek jis trunka?

Nuskaitymas vyksta jūsų naršyklėje; mūsų serveris tik atsiunčia jam failus, viena užklausa kiekvienam failui. Niekas nesaugoma. Lėtoje svetainėje nuskaitymas gali trukti iki maždaug pusantros minutės.

Ko skeneris nemato?

Paslapčių, kurios egzistuoja tik serveryje, puslapių už prisijungimo, kodo dalių, kurias puslapis vėliau įkelia per import(), ir source map. Jis taip pat negali pasakyti, ar rastas raktas vis dar aktyvus. Švarus rezultatas nėra įrodymas, kad programa saugi.

Kodėl kai kurie raktai pažymėti kaip vieši tyčia?

Supabase anon ar publishable raktas, Firebase apiKey, Google API raktas ir Stripe publishable raktas sukurti siųsti į naršyklę. Jie identifikuoja jūsų projektą ir suteikia tik tai, ką leidžia jūsų duomenų bazės taisyklės, API apribojimai ir serverio patikros. Apie juos pranešama, kad galėtumėte įsitikinti, jog tos taisyklės yra, o ne todėl, kad pats raktas būtų nutekėjimas.

Ką daryti, jei nutekėjo tikra paslaptis?

Pirmiausia ją pakeiskite: sukurkite naują raktą pas tiekėją ir panaikinkite seną. Tada perkelkite naują raktą į serverio kodą arba aplinkos kintamuosius ir įdiekite iš naujo. Rakto ištrynimo iš kodo nepakanka, nes sena reikšmė lieka ankstesniuose build, talpyklose ir git istorijoje.

Kodėl programos, sukurtos vibe coding būdu, taip dažnai atskleidžia raktus?

Greitai su AI įrankiais parašytas kodas dažnai kviečia mokamą ar privilegijuotą API tiesiai iš naršyklės, o raktas patenka į scenarijų, kurį atsisiunčia kiekvienas lankytojas. Vibe coding saugumas prasideda nuo to, kad tokie kvietimai liktų serveryje.