Rexact
Cheatsheet

Regex clé d'API Stripe (sk_live_, pk_test_…)

Une clé d'API Stripe s'écrit type_mode_corps : le type est sk (secrète), rk (restreinte) ou pk (publiable), le mode est test (environnement de test) ou live (production), et le corps est alphanumérique. La documentation de Stripe ne fixe que ces préfixes (sk_live_, rk_test_, pk_live_…), pas la longueur du corps ; les bornes viennent des détecteurs, qui varient : exactement 24 caractères chez detect-secrets, 20 à 247 chez trufflehog, 10 à 99 chez gitleaks. Les trois outils relus ne regardent que les clés secrètes ou restreintes, et deux ignorent les clés de test. Voici un motif ancré qui couvre les trois types et les deux modes, comparé à ces outils.

/^(?:sk|rk|pk)_(?:test|live)_[A-Za-z0-9]{24,247}$/
passe 24/24 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^(?:sk|rk|pk)_(?:test|live)_[A-Za-z0-9]{24,247}$", "");
re.test(input);

Limites

  • Valide seulement la FORME : ne prouve pas que la clé existe ni qu'elle est active (seule l'API de Stripe peut le dire). Une clé sk_live_ valide en forme mais inventée passe ce motif.
  • La documentation de Stripe ne fixe ni la longueur ni l'alphabet du corps : la borne de 24 à 247 caractères alphanumériques est un choix inspiré de detect-secrets et de trufflehog, pas une règle publiée. Si Stripe change le format, adaptez-la.
  • Les clés d'organisation (sk_org_…) et les clés gérées émises par des plateformes d'hébergement sont mentionnées par la documentation mais ne sont pas couvertes. Les secrets de webhook (whsec_…) et les identifiants d'objets (pi_…, cus_…) sont d'autres formats.
  • Une clé pk_ est publiable (côté client) ; sk_ et rk_ sont des secrets : ne les mettez jamais dans le code ni dans un outil en ligne, et n'utilisez que des chaînes factices pour les tests.

Pages liées