Le code que votre navigateur reçoit pour afficher une page est public. Tout ce qu'il contient peut être lu par n'importe qui, y compris par quelqu'un qui ne cherche qu'à cela. Une clé d'API laissée dans ce code n'est donc pas cachée : elle est publiée.
Ce que cela coûte, concrètement
- De l'argent. Une clé de service facturé à l'usage peut être consommée en quelques heures. C'est le scénario le plus fréquent, et le plus silencieux : on s'en aperçoit à la facture.
- Des données. Une clé donne souvent accès à plus que la fonction prévue : lire des enregistrements, modifier, envoyer des messages en votre nom.
- Une réputation. Une clé de messagerie utilisée pour envoyer du courrier indésirable abîme votre domaine — pas seulement votre image, votre capacité à écrire à vos clients.
Les quatre gestes, dans cet ordre
- Révoquer la clé — avant de chercher pourquoi, avant de comprendre. Une clé révoquée ne peut plus rien faire, et c'est l'opération la plus rapide.
- Créer une nouvelle clé, avec des droits restreints. La plupart des services permettent de limiter une clé à deux ou trois opérations. Une clé qui ne peut que lire ne peut pas vider un compte.
- Regarder l'usage des dernières semaines. Les appels sortants, les erreurs, les adresses qui interrogent l'API. C'est ce qui distingue « la clé était exposée » de « la clé a été utilisée ».
- Chercher les autres. Une clé exposée signale presque toujours une méthode de travail qui en a exposé plusieurs. On cherche, on ne suppose pas.
Pourquoi cela arrive, et ce n'est pas une question de compétence
Le motif est toujours le même : un service qui a besoin d'une clé pour parler à un autre service, et un site qui n'a pas d'endroit prévu pour garder un secret. Un site statique n'a pas de serveur pour héberger la clé — alors elle se retrouve dans le seul endroit disponible, côté navigateur.
C'est exactement le genre de vérification qu'aucun outil de génération ne fait à votre place : elle ne casse rien, elle est invisible à l'usage, et elle ne se voit que si quelqu'un la cherche.
Un secret n'est pas caché parce qu'il est difficile à trouver. Il est caché parce qu'il n'est jamais transmis à quelqu'un qui n'en a pas besoin.
Comment le vérifier vous-même
Ouvrez votre site, faites « afficher le code source » sur la page qui parle à un service, et
cherchez les mots key, token, secret, sk_.
Si quelque chose correspond, vous avez votre réponse en moins d'une minute.
Nous en faisons une vérification dédiée dans chaque relevé, parmi les quarante-huit autres : c'est celle qui remonte le plus souvent en tête des points critiques.