Analysez une page publique à la recherche de 25 types de secrets exposés
Les applications faites en vibe coding envoient souvent des clés au navigateur. Indiquez l’adresse d’une seule page que vous gérez : le scanner lit le HTML de cette page et les fichiers de script qu’elle charge, à la recherche de clés API, de tokens et d’URL de base de données qu’un visiteur pourrait copier. Les valeurs sont affichées masquées.
Résultat
Ce que cette analyse ne peut pas voir
Le scanner lit seulement les fichiers que le navigateur d’un visiteur télécharge depuis la page. Il ne voit pas les secrets qui restent sur le serveur, les pages derrière une connexion, les fichiers chargés plus tard par import(), ni les source maps. Un résultat propre ne prouve pas que l’application est sûre.
Les 25 types de clés
20 d’entre eux sont des secrets qui ne doivent jamais arriver dans un navigateur. 5 sont publics par conception.
Les clés marquées publiques, comme une clé anon Supabase, une apiKey Firebase ou une clé publiable Stripe, sont faites pour le navigateur. Elles ne sont sûres que tant que les règles de votre base protègent les données derrière elles.
| Type de clé | ID | Gravité | Nature |
|---|---|---|---|
| Clé API OpenAI | openai-key | Critique | Secret |
| Clé API Anthropic | anthropic-key | Critique | Secret |
| Clé secrète live Stripe | stripe-secret | Critique | Secret |
| Clé secrète de test Stripe | stripe-test-secret | Moyenne | Secret |
| Clé publiable Stripe | stripe-publishable | Info | Public par conception |
| ID de clé d’accès AWS | aws-access-key | Élevée | Secret |
| Clé d’accès secrète AWS | aws-secret | Critique | Secret |
| Token GitHub | github-token | Critique | Secret |
| Clé API Google | google-api-key | Info | Public par conception |
| apiKey de la configuration web Firebase | firebase-web-config | Info | Public par conception |
| Clé service_role Supabase | supabase-service-role-jwt | Critique | Secret |
| Clé anon Supabase | supabase-anon-jwt | Info | Public par conception |
| JSON Web Token | jwt-other | Faible | Secret |
| Clé secrète Supabase | supabase-secret-key | Critique | Secret |
| Clé publiable Supabase | supabase-publishable-key | Info | Public par conception |
| Token Slack | slack-token | Critique | Secret |
| URL de webhook Slack | slack-webhook | Élevée | Secret |
| Clé API SendGrid | sendgrid-key | Critique | Secret |
| SID de clé API Twilio | twilio-key | Élevée | Secret |
| Clé API Mailgun | mailgun-key | Élevée | Secret |
| Bloc de clé privée | private-key-block | Critique | Secret |
| URL de base de données avec mot de passe | database-url | Critique | Secret |
| Token npm | npm-token | Critique | Secret |
| Token Hugging Face | huggingface-token | Élevée | Secret |
| Clé API Resend | resend-key | Élevée | Secret |
Questions
Que lit le scanner de secrets ?
Il lit le HTML de la page et jusqu’à 14 fichiers de script qu’elle charge, 3 MB au total, les 512 KB premiers de la page et les 1 MB premiers de chaque fichier. Il cherche des formats de clés connus, comme les clés API, les tokens d’accès, les blocs de clé privée et les URL de base de données avec mot de passe.
Où s’exécute l’analyse et combien de temps dure-t-elle ?
L’analyse s’exécute dans votre navigateur ; notre serveur se contente de récupérer les fichiers pour elle, une requête par fichier. Rien n’est conservé. Sur un site lent, une analyse peut durer jusqu’à environ une minute et demie.
Que ne peut pas voir le scanner ?
Les secrets qui n’existent que sur le serveur, les pages derrière une connexion, les morceaux que la page charge plus tard par import() et les source maps. Il ne peut pas non plus savoir si une clé trouvée est toujours active. Un résultat propre ne prouve pas que l’application est sûre.
Pourquoi certaines clés sont-elles marquées publiques par conception ?
Une clé anon ou publiable Supabase, une apiKey Firebase, une clé API Google et une clé publiable Stripe sont faites pour être envoyées au navigateur. Elles identifient votre projet et n’accordent que ce que permettent les règles de votre base, les restrictions de l’API et les contrôles du serveur. Elles sont signalées pour que vous confirmiez que ces règles existent, pas parce que la clé elle-même serait une fuite.
Que faire si un vrai secret fuit ?
Faites-le tourner d’abord : créez une nouvelle clé chez le fournisseur et révoquez l’ancienne. Placez ensuite la nouvelle clé dans du code côté serveur ou des variables d’environnement et redéployez. Supprimer la clé du code ne suffit pas, car l’ancienne valeur reste dans les builds précédents, les caches et l’historique git.
Pourquoi les applications faites en vibe coding laissent-elles si souvent fuiter des clés ?
Le code écrit vite avec des outils d’IA appelle souvent une API payante ou privilégiée directement depuis le navigateur, et la clé finit dans le script que chaque visiteur télécharge. La sécurité en vibe coding commence par garder ces appels sur le serveur.