Pourquoi configurer une whitelist de domaines pour votre clé API GreenCalc

Une clé API qui fuite sur un dépôt public peut être exploitée en quelques heures. La whitelist de domaines (allowed_domains) bloque toute requête depuis un domaine non listé, même si la clé est techniquement valide. Voici comment activer cette protection en 2 minutes et pourquoi c’est la défense la plus efficace contre les fuites accidentelles.

Publié le 25 avril 2026 · 8 minutes de lecture · Par GreenCalc — AZMORIS Group

1. Le scénario réel d’une clé qui fuite

Un développeur travaille sur l’intégration GreenCalc d’un site artisan RGE. Il copie sa clé API gc_live_xxxxx dans un fichier .env. Quelques jours plus tard, par réflexe ou mégarde, il commit et push ce fichier sur GitHub.

Le repo est public. Des bots scannent en permanence les nouveaux commits à la recherche de chaînes ressemblant à des clés API (regex sur les préfixes connus comme gc_, sk_, AKIA, etc.). En moins de 4 heures, la clé est récupérée par un acteur malveillant.

L’attaquant lance un script qui consomme 1 000 simulations en 10 minutes. Le compte du développeur atteint 80% de son quota mensuel dès le lendemain matin (alerte email automatique GreenCalc). Sans intervention, la clé aurait épuisé le quota mensuel complet en moins de 24h.

Coût réel de la fuite : dans le pire cas, le client doit upgrader d’urgence vers le plan supérieur pour ne pas casser sa propre prod, le temps de générer une nouvelle clé et de purger l’ancienne.

2. Les protections déjà en place chez GreenCalc

Avant même de configurer une whitelist, GreenCalc applique plusieurs filets de sécurité automatiques :

Ces protections sont robustes, mais réactives : elles agissent une fois l’abus en cours. La whitelist, elle, est préventive.

3. La whitelist : la couche ultime

Le principe est simple : chaque clé API peut être associée à une liste de domaines autorisés. Toute requête dont l’Origin ou le Referer n’apparaît pas dans la liste est rejetée en HTTP 403, même si la clé est correcte.

Sans configuration explicite, le mode est permissif par défaut (la clé fonctionne depuis n’importe où). Aucun client GreenCalc existant n’est cassé par l’activation de cette feature : seul ceux qui ont configuré une whitelist sont contrôlés.

ScénarioSans whitelistAvec whitelist
Clé fuitée sur GitHubExploitée à 100%0 requête valide depuis l’exterieur
Bot lance 1000 sim/minQuota consommé1000 réponses 403
Concurrent rejoue la cléRéussitBloqué par Origin check
Vous depuis votre prodOKOK (domaine listé)

4. Trois cas d’usage concrets

Cas 1 — Artisan RGE avec un site vitrine

Vous intégrez le widget GreenCalc sur votre site monsite-rge.fr. Whitelist recommandée :

monsite-rge.fr
*.monsite-rge.fr

Cela couvre monsite-rge.fr, www.monsite-rge.fr, et tout sous-domaine que vous pourriez ajouter (blog.monsite-rge.fr, devis.monsite-rge.fr).

Cas 2 — Mandataire CEE avec plusieurs sites partenaires

Vous gérez les sites de 5 partenaires sous différents domaines. Whitelist :

cabinet-energie.fr
*.cabinet-energie.fr
artisan-renov-paris.com
*.artisan-renov-paris.com
... (jusqu'a 50 entrees max)

Cas 3 — Néobanque avec un CDN devant son app

Votre app principale est sur app.neobanque.fr mais utilise un CDN qui présente l’Origin différemment :

app.neobanque.fr
api.neobanque.fr
*.cdn.neobanque.fr

Vérifiez via l’outil « Tester un Origin » dans la modal du dashboard que tous vos URLs réels passent. La preview est instantanée.

5. Configurer en 2 minutes

  1. Connectez-vous : https://greencalc.io/dashboard
  2. Section « Mes clés API »
  3. Cliquez sur le badge « Aucune restriction » (jaune) à côté de votre clé
  4. Listez vos domaines (1 par ligne, 50 max)
  5. Utilisez l’outil « Tester un Origin » pour vérifier que vos URLs réels passent
  6. Cliquez « Enregistrer »

La protection est immédiate. Le badge passe au vert « X domaines ».

6. Bonnes pratiques

Astuce : en développement local, vous pouvez ajouter localhost à votre whitelist (même si techniquement localhost n’est pas un vrai domaine). Cela fonctionne car votre navigateur envoie Origin: http://localhost:3000 et l’extraction de hostname donne localhost.

7. Ce que la whitelist ne fait PAS

Pour rester transparent :

La whitelist est une couche de plus dans une stratégie de défense en profondeur, pas une silver bullet.

Protégez votre clé en 2 minutes

L’activation est non-destructive : si vous ne configurez rien, votre clé continue de fonctionner partout. Si vous la configurez, GreenCalc bloque les requêtes intruses.

Configurer maintenant →

8. Questions fréquentes

Sans whitelist configurée, n’importe qui peut utiliser votre clé pour consommer votre quota mensuel. Avec une whitelist active, les requêtes depuis tout domaine non listé sont rejetées en HTTP 403, même si la clé est correcte.
Connectez-vous à /dashboard, allez dans « Mes clés API », cliquez sur le bouton de status à côté de votre clé (« Aucune restriction » par défaut), listez vos domaines (1 par ligne), enregistrez. La protection est immédiate.
Oui. Le pattern *.monsite.fr autorise monsite.fr (domaine racine) ainsi que tous les sous-domaines (api.monsite.fr, www.monsite.fr, deep.sub.monsite.fr). Les wildcards TLD comme *.com sont en revanche interdits pour des raisons de sécurité.
Non, sauf si vous l’avez configurée. Par défaut chaque clé est en mode permissif (allowed_domains vide). En dev, laissez vide ou ajoutez localhost. En prod, listez explicitement vos domaines.
Connectez-vous au dashboard depuis n’importe quel autre domaine ou poste, allez sur la clé, cliquez « Tout autoriser (mode permissif) » pour effacer la whitelist. Vous pouvez aussi nous contacter à [email protected] pour débloquer en urgence.
Non, c’est complémentaire. La whitelist limite l’usage en cas de fuite, mais ne remplace pas une rotation périodique. Bonne pratique : roter chaque clé live tous les 6 mois (Revoke + Create), et combiner avec une whitelist active.