Échappement de mot de passe pour .env

Écrivez un mot de passe dans une ligne .env que shell, dotenv Node.js, python-dotenv ou docker --env-file relisent à l’identique, guillemets et $ compris.

Chaque ligne est entourée de guillemets pour que l’analyseur relise exactement votre mot de passe : le shell utilise des apostrophes avec '\'' pour chaque apostrophe, le dotenv de Node choisit apostrophes, guillemets doubles ou accents graves, python-dotenv échappe \ et \' entre apostrophes, et docker --env-file prend le reste de la ligne tel quel (sans guillemets).

S'exécute entièrement dans votre navigateur. Vos données ne sont jamais envoyées.

Qu'est-ce que Échappement de mot de passe pour .env ?

Les mots de passe avec guillemets, signes dollar, # ou antislashs cassent souvent les fichiers .env ou sont modifiés par l’expansion de variables. Cet outil écrit des lignes KEY=value que chaque analyseur relit exactement comme votre mot de passe, et signale quand un analyseur ne peut pas représenter la valeur.

Comment utiliser Échappement de mot de passe pour .env

  1. Saisissez le Nom de la variable, par exemple DB_PASSWORD.
  2. Saisissez le mot de passe dans le champ Mot de passe.
  3. Copiez la ligne pour votre cible : shell/POSIX, dotenv Node.js, python-dotenv ou docker run --env-file.
  4. Collez-la dans votre fichier .env.

Exemple

Entrée
Variable DB_PASSWORD, password p@ss'w"rd$1
Sortie
Shell: DB_PASSWORD='p@ss'\''w"rd$1'
Node dotenv: DB_PASSWORD=`p@ss'w"rd$1`
python-dotenv: DB_PASSWORD='p@ss\'w"rd$1'
docker --env-file: DB_PASSWORD=p@ss'w"rd$1

Quand utiliser Échappement de mot de passe pour .env

Utilisez-le dès qu’un secret contient d’autres caractères que des lettres et des chiffres. Si vous maîtrisez le secret, une longue valeur alphanumérique évite tout problème d’échappement.

Comment fonctionne Échappement de mot de passe pour .env

Shell : la valeur est entourée d’apostrophes et chaque ' devient '\'' (aucune expansion dans les apostrophes). dotenv Node (v15+) : les apostrophes sont littérales ; si la valeur contient ', on utilise des guillemets doubles (seuls \n et \r sont interprétés), sinon des accents graves ; les valeurs finissant par un antislash ou contenant les trois types de guillemets ne peuvent pas être représentées. python-dotenv : apostrophes, avec \ et ' échappés en \\ et \'. docker --env-file : aucun guillemet ; le reste de la ligne est la valeur, donc les retours à la ligne sont impossibles.

Cas d'utilisation courants

  • Ajouter à un fichier .env un mot de passe de base de données contenant $ et des guillemets
  • Préparer des secrets pour docker run --env-file
  • Corriger des valeurs dotenv coupées au #
  • Écrire des instructions export pour des scripts shell

Questions Fréquentes

Pourquoi ne pas simplement utiliser des guillemets doubles ?

Entre guillemets doubles, les shells et certains chargeurs dotenv développent $VAR et interprètent les antislashs, ce qui change le mot de passe sans prévenir.

Pourquoi la ligne docker --env-file n’a-t-elle pas de guillemets ?

docker run --env-file ne traite pas les guillemets ; ils feraient partie de la valeur.

Docker Compose suit-il les mêmes règles ?

L’analyseur .env de Docker Compose a ses propres règles d’interpolation, que cet outil ne modélise pas ; consultez la documentation de Compose ou utilisez $$ pour un signe dollar littéral.

Explorer d'autres catégories