Article · SaaS & dev

Gérer les variables d’environnement sans exposer les secrets

Une séparation simple entre configuration publique, secrets serveur, environnements et rotation.

Une clé placée dans un coffre à côté de dossiers séparant la configuration.

Public ne veut pas dire sans risque

Dans Next.js, une variable préfixée NEXT_PUBLIC_ est destinée à être incorporée au bundle navigateur. Elle ne doit donc jamais contenir une clé privée, un mot de passe ou une URL dont la connaissance permettrait un accès privilégié. La documentation Next.js sur les variables d’environnement décrit cette frontière.

Une configuration publique peut tout de même être sensible au contexte : origine canonique, identifiant de projet ou fonctionnalité expérimentale. Traitez-la comme une donnée exposée, documentée et versionnée avec prudence.

Séparer les environnements

Local, prévisualisation et production doivent avoir des secrets distincts. Un fichier .env.example peut montrer les noms requis et des valeurs fictives ; il ne doit pas contenir un secret utilisable. Les valeurs réelles sont injectées par le gestionnaire de secrets ou la plateforme de déploiement.

Vérifiez le sens de propagation : un secret lu dans un Server Component n’est pas automatiquement sûr si sa valeur est passée à un composant client. Inspectez aussi les logs et les erreurs, qui peuvent recopier par inadvertance une configuration entière.

Rotation et retrait

Une clé doit avoir un propriétaire, une date de création, une portée et une procédure de révocation. Testez la rotation avec une ancienne et une nouvelle valeur pendant une fenêtre contrôlée si le service le permet. Ensuite, invalidez réellement l’ancienne clé ; la supprimer du fichier local ne la révoque pas chez le fournisseur.

En cas de fuite présumée, ne cherchez pas d’abord à réécrire l’historique Git : révoquez le secret, préservez les preuves utiles, puis identifiez les usages. Les logs doivent permettre de dater l’activité sans publier la valeur compromise.

Checklist avant publication

Cherchez les préfixes publics, inspectez le bundle et les réponses HTTP, vérifiez que .env* est ignoré, et exécutez une route sans la configuration facultative. Le site doit afficher une erreur explicite lorsque la base ou le secret requis manque, jamais une valeur de démonstration présentée comme réelle.

Cette vérification complète la préparation de publication Next.js et la conception d’une API à frontière serveur.

Sources et limites

Sources vérifiées le 21 septembre 2026 : variables d’environnement Next.js et checklist de production. Aucun secret réel n’est utilisé dans cet article.