Gérer ses secrets proprement
Un secret commité par erreur, et c'est la clé de ta base ou de Stripe sur GitHub pour toujours. Voici où les secrets doivent vivre, comment les injecter selon l'environnement, et quoi faire quand l'un fuit.
Un secret commité par erreur, et c'est la clé de ta base ou de Stripe sur GitHub pour toujours. Voici où les secrets doivent vivre, comment les injecter selon l'environnement, et quoi faire quand l'un fuit.
Un secret ne vit jamais dans le code, ni dans le dépôt git. Il vit dans l'environnement, injecté au moment de l'exécution. Le code lit process.env ; il ne connaît jamais la valeur.
Un .env commité une fois reste dans l'historique git à jamais, même supprimé ensuite. Le seul vrai correctif : faire tourner (révoquer + régénérer) le secret exposé.
Les variables CI/CD masquées sont exactement celles de bien utiliser GitLab CI/CD.
Deux réflexes : ne jamais mettre un secret dans une variable NEXT_PUBLIC_ (elle finit dans le bundle client), et valider la présence des secrets au démarrage plutôt que de découvrir qu'il en manque un en pleine requête prod.
La frontière NEXT_PUBLIC_ est le même piège que dans les failles de sécurité de base sur Next.js.
Gérer ses secrets, c'est une discipline simple : hors du code, hors de git, injectés par l'environnement, validés au boot, et tournés sans hésiter. Un scan en CI comme filet, et la clé de ta base ne finira jamais dans un dépôt public.
AWS — Secrets Manager ↗