Dotenv (.env)

De Standaard

Het omgevingsconfiguratiebestand (.env) is een veelgebruikte conventie voor het opslaan van omgevingsvariabelen in tekstbestanden. De syntaxis en het laadgedrag zijn afhankelijk van de tool, dus het is geen universele configuratiestandaard.

ENV naar JSON converteren

Gratis ENV-naar-JSON-converter in uw browser. Converteer bestanden direct op uw apparaat.

Inspecteren en metadata

Besturingssystemen en bestandsanalysators herkennen ENV-bestanden aan de hand van de eerste binaire bytesequentie:

Selecteer of sleep bestanden hierheen

Privé - bestanden verlaten uw apparaat niet

of plak Ctrl+V
Privacygarantie zonder netwerktransmissie: 0 bytes geüpload naar externe servers. Alle verwerking vond lokaal plaats in uw browser-sandbox.

Bestandshandtekening op byteniveau (magic bytes)

Besturingssystemen en bestandsanalysators herkennen ENV-bestanden aan de hand van de eerste binaire bytesequentie:

HEX-HANDTEKENING (OFFSET 0):

41 2D 5A 5F 3D

ASCII-WEERGAVE: KEY=VAL

Standaardisatie: De Twelve-Factor App-specificatie / Dotenv-standaard

Technische specificaties

ContainerarchitectuurKey=value-paren in platte tekst die omgevingsvariabelen van het besturingssysteem definiëren, met optionele ondersteuning voor exportvoorvoegsels en aanhalingstekens
CompressieNiet-gecomprimeerde tekststroom
Bytevolgorde (endianness)UTF-8-tekststroom
KleurruimtenN.v.t. (configuratiebestand)
Kanalen en structuurNamen van omgevingsvariabelen, tekenreekswaarden en commentaarregels (#)
Maximale afmetingenOnbegrensde bestandslengte
TransparantieGeen
Streaming en progressiefSequentiële streaminguitvoering regel voor regel

Technische vergelijkingsmatrix: ENV versus concurrenten

Technisch kenmerkENV (Huidig)JSONYAMLINI
GeheimenbeheerScheidt geheimen van de broncodeStandaard opgenomen in de repositoryStandaard opgenomen in de repositoryStandaard opgenomen in de repository
Eenvoud van de syntaxisGeen overbodige syntaxis: KEY=valueVereist haken en aanhalingstekensVereist strikte inspringingVereist sectiekoppen
OS-omgevingsbindingDirecte 1-op-1-match met process.envMoet worden verwerkt tot een objectMoet worden verwerkt tot een objectMoet worden verwerkt tot een object
GegevenshiërarchieStrikt vlakke sleutel-waardeparenOnbeperkt geneste hiërarchieOnbeperkt geneste hiërarchieSectienaamruimten van 1 niveau

Veelvoorkomende beschadigingen en gids voor hex-herstel

Applicatie crasht met 'TypeError: Cannot read property of undefined' voor verwachte omgevingsvariabelen.

Oorzaak: Spaties rond het is-gelijkteken (bijv. 'KEY = VALUE' in plaats van 'KEY=VALUE') of niet-gesloten aanhalingstekens.

Herstel: Normaliseer en formatteer de omgevingssyntaxis met de Config Sanitizer van File2File.app.

Beveiligingsanalyse en aanvalsvectoren voor parsers

Commit nooit .env-bestanden naar git; voeg .env altijd toe aan .gitignore en gebruik diensten voor geheimenbeheer in productie.

Bekende aanvalsvectoren

  • Per ongeluk toevoegen aan Git, waardoor AWS-sleutels en databasewachtwoorden voor productie openbaar op GitHub terechtkomen.
  • Onjuiste configuratie van de webserver waardoor het .env-bestand direct wordt meegezonden bij openbare HTTP-aanvragen.
  • Commando-injectie via niet-geëscapete expansie van shellvariabelen in dotenv-loaders.

Aanbevolen beveiligingspraktijken: Commit nooit .env-bestanden naar git; voeg .env altijd toe aan .gitignore en gebruik diensten voor geheimenbeheer in productie.

Historische oorsprong en mijlpalen

2013De open-sourcebibliotheek 'dotenv' voor Node.js populariseert .env-bestanden in moderne full-stack-webontwikkeling.
2011Adam Wiggins publiceert de Twelve-Factor App-methodologie, waarin wordt voorgeschreven dat configuratie strikt in de omgeving wordt opgeslagen.
2011Heroku is pionier op het gebied van cloudbeheer van omgevingsvariabelen, wat inspiratie vormt voor lokale .env-bestandsemulatie.

Belangrijkste voordelen

  • Aanbevolen beveiligingspraktijk: houdt databasewachtwoorden, API-tokens en geheime versleutelingssleutels buiten broncoderepository's.
  • .env-bestanden worden gebruikt in verschillende ecosystemen, maar de syntaxis en het laadgedrag zijn afhankelijk van de tool.
  • Eenvoudig te lezen, te schrijven en te automatiseren in implementatiescripts en CI-pijplijnen.

Technische beperkingen

  • Hoog risico op onbedoelde openbaarmaking: ontwikkelaars voegen per ongeluk '.env'-bestanden toe aan openbare GitHub-repository's.
  • Biedt standaard geen versleuteling van opgeslagen gegevens zonder gespecialiseerde tools zoals Doppler of dotenv-vault.
  • Ondersteunt geen complexe geneste gegevensstructuren (waarden zijn uitsluitend platte tekenreeksen).

Interessante technische weetjes

  • Regel III van de beroemde 'Twelve-Factor App'-methodologie stelt expliciet: 'Sla configuratie op in de omgeving'.
  • Het '.env'-bestand begint met een punt zodat besturingssystemen op basis van Unix het standaard als een verborgen bestand behandelen.
  • Veel projectsjablonen negeren .env-bestanden om het risico op het committeren van geheimen te verkleinen, maar .gitignore-sjablonen variëren.

Veelgestelde technische vragen

Wat is een .env-bestand?

Een .env-bestand is een eenvoudig tekstbestand waarin geheime sleutels, databasewachtwoorden en omgevingsinstellingen worden opgeslagen als KEY=VALUE-paren. Zo blijven deze veilig en gescheiden van uw broncode.

Moet ik .env committen naar GitHub?

NEE! U mag NOOIT een .env-bestand committen naar GitHub of een andere openbare repository. Hierdoor komen uw geheime wachtwoorden en API-sleutels openbaar te liggen.

Hoe kan ik een ENV-bestand converteren naar JSON?

U kunt .env-bestanden veilig omzetten in nette JSON-objecten of YAML-bestanden met File2File.app, rechtstreeks in uw webbrowser. Er verlaten geen gegevens uw apparaat.