{"id":70906,"date":"2024-03-29T07:00:00","date_gmt":"2024-03-29T14:00:00","guid":{"rendered":"https:\/\/dhblog.dream.press\/blog\/?p=70906"},"modified":"2025-05-26T09:14:46","modified_gmt":"2025-05-26T16:14:46","slug":"wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl","status":"publish","type":"post","link":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/","title":{"rendered":"Wat Zijn Omgevingsvariabelen: Een Grondige Gids Voor Beginners"},"content":{"rendered":"\n<p>Omgevingsvariabelen maken het mogelijk om applicaties te configureren zonder code te wijzigen. Ze scheiden externe gegevens van app-logica, wat behoorlijk mysterieus kan blijven voor beginnende ontwikkelaars (en zelfs sommige ervaren ontwikkelaars).<\/p>\n\n\n<p>Met deze praktische gids zullen we het mysterie rondom omgevingsvariabelen onthullen, zodat je begrijpt wat ze inhouden, waarom ze belangrijk zijn en hoe je omgevingsvariabelen met vertrouwen kunt gebruiken.<\/p>\n\n\n<p>Pak je favoriete drankje (en misschien wat koekjes) want we gaan erin duiken. Laten we de concepten van omgevingsvariabelen vanaf de basis uitpakken.<\/p>\n\n\n<h2 id=\"what\" class=\"wp-block-heading\">Wat Zijn Omgevingsvariabelen?<\/h2>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"851\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/01-What-Are-Environment-Variables.jpg\" alt=\"voorbeeld van omgevingsvariabelen die een voorbeeld tonen van een dynamische waarde zoals $SUGAR en wat die waarde gelijk is aan: 1 kop suiker\" class=\"wp-image-43783 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/01-What-Are-Environment-Variables.jpg.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/01-What-Are-Environment-Variables-300x160.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/01-What-Are-Environment-Variables-1024x545.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/01-What-Are-Environment-Variables-768x408.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/01-What-Are-Environment-Variables-1536x817.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/01-What-Are-Environment-Variables-600x319.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/01-What-Are-Environment-Variables-1200x638.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/01-What-Are-Environment-Variables-730x388.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/01-What-Are-Environment-Variables-1460x777.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/01-What-Are-Environment-Variables-784x417.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/01-What-Are-Environment-Variables-1568x834.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/01-What-Are-Environment-Variables-877x466.jpg.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/851;\" \/><\/figure>\n\n\n<p>Omgevingsvariabelen zijn dynamische benoemde waarden die van invloed kunnen zijn op hoe lopende processen zich gedragen op een computer. Enkele belangrijke eigenschappen van omgevingsvariabelen zijn:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Benaming<\/strong>: Gebruik beschrijvende variabelnamen zoals <em>APP_MODE<\/em> en <em>DB_URL<\/em>.<\/li>\n\n\n\n<li><strong>Extern<\/strong>: Waarden worden ingesteld buiten de app-code via bestanden, commandoregels en systemen.<\/li>\n\n\n\n<li><strong>Dynamisch<\/strong>: Kan variabelen bijwerken zonder apps te herstarten.<\/li>\n\n\n\n<li><strong>Geconfigureerd<\/strong>: Code is afhankelijk van variabelen maar definieert ze niet.<\/li>\n\n\n\n<li><strong>Ontkoppeld<\/strong>: Geen noodzaak om codeconfiguraties te wijzigen zodra variabelen zijn ingesteld.<\/li>\n\n\n\n<\/ul>\n\n\n<p><strong>Hier is een analogie<\/strong>. Stel je voor dat je een recept voor chocolate chip cookies volgt. Het recept zou kunnen zeggen:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Voeg 1 kopje suiker toe<\/li>\n\n\n\n<li>Voeg 1 stuk zachte boter toe<\/li>\n\n\n\n<li>Voeg 2 eieren toe<\/li>\n\n\n\n<\/ul>\n\n\n<p>In plaats van die hard-gecodeerde waarden, zou je in plaats daarvan omgevingsvariabelen kunnen gebruiken:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Voeg $SUGAR kopje suiker toe<\/li>\n\n\n\n<li>Voeg $BUTTER stokjes zachte boter toe<\/li>\n\n\n\n<li>Voeg $EGGS eieren toe<\/li>\n\n\n\n<\/ul>\n\n\n<p>Voordat je de koekjes maakt, stel je die omgevingsvariabelenamen in op waarden naar keuze:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>SUGAR=1 \nBUTTER=1\nEGGS=2<\/code><\/pre>\n\n\n<p>Dus, als je het recept volgt, zullen je ingredi\u00ebnten zijn:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Voeg 1 kopje suiker toe<\/li>\n\n\n\n<li>Voeg 1 staafje verzachte boter toe<\/li>\n\n\n\n<li>Voeg 2 eieren toe<\/li>\n\n\n\n<\/ul>\n\n\n<p>Hiermee kun je het cookie-recept configureren zonder de receptcode te wijzigen.<\/p>\n\n\n<p>Hetzelfde concept is van toepassing op rekenen en ontwikkeling. Omgevingsvariabelen stellen je in staat om de omgeving waarin een proces draait te wijzigen zonder de onderliggende code te veranderen. Hier zijn een paar veelvoorkomende voorbeelden:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>De omgeving instellen op &#8220;development&#8221; of &#8220;production&#8221;<\/li>\n\n\n\n<li>API-sleutels configureren voor externe diensten<\/li>\n\n\n\n<li>Geheime sleutels of inloggegevens doorgeven<\/li>\n\n\n\n<li>Bepaalde functies in- en uitschakelen<\/li>\n\n\n\n<\/ul>\n\n\n<p>Omgevingsvariabelen bieden veel flexibiliteit. Je kunt dezelfde code naar meerdere omgevingen implementeren zonder de code zelf te wijzigen. Maar laten we verder begrijpen waarom ze waardevol zijn.<\/p>\n\n\n<h2 id=\"why\" class=\"wp-block-heading\">Waarom Zijn Omgevingsvariabelen Waardevol?<\/h2>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1050\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/02-Why-Are-Environment-Variables-Valuable.jpg\" alt=\"omgevingsvariabelen zijn waardevol om applicatiecode te scheiden van configuraties, de configuratie van applicaties te vereenvoudigen, geheimen en referenties te beheren, en consistentie te bevorderen\" class=\"wp-image-43784 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/02-Why-Are-Environment-Variables-Valuable.jpg.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/02-Why-Are-Environment-Variables-Valuable-300x197.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/02-Why-Are-Environment-Variables-Valuable-1024x672.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/02-Why-Are-Environment-Variables-Valuable-768x504.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/02-Why-Are-Environment-Variables-Valuable-1536x1008.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/02-Why-Are-Environment-Variables-Valuable-600x394.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/02-Why-Are-Environment-Variables-Valuable-1200x788.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/02-Why-Are-Environment-Variables-Valuable-730x479.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/02-Why-Are-Environment-Variables-Valuable-1460x958.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/02-Why-Are-Environment-Variables-Valuable-784x515.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/02-Why-Are-Environment-Variables-Valuable-1568x1029.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/02-Why-Are-Environment-Variables-Valuable-877x576.jpg.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1050;\" \/><\/figure>\n\n\n<p>Beschouw omgevingsvariabelen als toepassingsknoppen die gebruikt worden om voorkeuren af te stemmen. We zullen binnenkort uitstekende gebruiksscenario&#8217;s verkennen.<\/p>\n\n\n<p>Laten we ons inzicht in waarom omgevingsvariabelen belangrijk zijn verstevigen!<\/p>\n\n\n<h3 class=\"wp-block-heading\">Reden #1: Ze Scheiden Applicatiecode Van Configuraties<\/h3>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"710\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/03-They-Separate-Application-Code-From-Configurations.jpg\" alt=\"reden #1 ze scheiden applicatiecode van configuraties en tonen deze twee elementen als aparte vakken in de grafiek\" class=\"wp-image-43785 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/03-They-Separate-Application-Code-From-Configurations.jpg.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/03-They-Separate-Application-Code-From-Configurations-300x133.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/03-They-Separate-Application-Code-From-Configurations-1024x454.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/03-They-Separate-Application-Code-From-Configurations-768x341.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/03-They-Separate-Application-Code-From-Configurations-1536x682.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/03-They-Separate-Application-Code-From-Configurations-600x266.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/03-They-Separate-Application-Code-From-Configurations-1200x533.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/03-They-Separate-Application-Code-From-Configurations-730x324.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/03-They-Separate-Application-Code-From-Configurations-1460x648.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/03-They-Separate-Application-Code-From-Configurations-784x348.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/03-They-Separate-Application-Code-From-Configurations-1568x696.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/03-They-Separate-Application-Code-From-Configurations-877x389.jpg.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/710;\" \/><\/figure>\n\n\n<p>Het rechtstreeks in je code hardcoderen van configuraties en inloggegevens kan allerlei problemen veroorzaken:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Per ongeluk commits naar broncontrole<\/li>\n\n\n\n<li>Code herbouwen en opnieuw implementeren alleen om een waarde te wijzigen<\/li>\n\n\n\n<li>Configuratieproblemen bij het promoten over omgevingen heen<\/li>\n\n\n\n<\/ul>\n\n\n<p>Het leidt ook tot rommelige code:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>import os\n\n# Hard-coded configuration\nDB_USER = 'appuser' \nDB_PASS = 'password123'\nDB_HOST = 'localhost'\nDB_NAME = 'myappdb'\n\ndef connect_to_db():\n  print(f\"Connecting to {DB_USER}:{DB_PASS}@{DB_HOST}\/{DB_NAME}\")  \n\nconnect_to_db()<\/code><\/pre>\n\n\n<p>Dit verstrengelt bedrijfslogica met configuratiedetails. Strakke koppeling maakt onderhoud op den duur moeizaam:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Wijzigingen vereisen het aanpassen van de broncode<\/li>\n\n\n\n<li>Risico op het lekken van geheimen in bronbeheer<\/li>\n\n\n\n<\/ul>\n\n\n<p>Het gebruik van omgevingsvariabelen vermindert deze problemen. Je kunt bijvoorbeeld de omgevingsvariabelen DB_USER en DB_NAME instellen.<\/p>\n\n\n<pre class=\"wp-block-code\"><code># .env-bestand\nDB_USER=appgebruiker\nDB_PASS=wachtwoord123  \nDB_HOST=localhost\nDB_NAME=mijnappdb<\/code><\/pre>\n\n\n<p>De applicatiecode kan toegang krijgen tot de omgevingsvariabelen wanneer nodig, waardoor de code schoon en eenvoudig blijft.<\/p>\n\n\n<pre class=\"wp-block-code\"><code>import os\n\n# Laad configuratie uit omgeving\nDB_USER = os.environ&#91;'DB_USER']\nDB_PASS = os.environ&#91;'DB_PASS'] \nDB_HOST = os.environ&#91;'DB_HOST']\nDB_NAME = os.environ&#91;'DB_NAME']\n\ndef connect_to_db():\n  print(f\"Verbinden met {DB_USER}:{DB_PASS}@{DB_HOST}\/{DB_NAME}\")\n  \nconnect_to_db()<\/code><\/pre>\n\n\n<p>Omgevingsvariabelen scheiden configuratie netjes van code, waarbij gevoelige waarden geabstraheerd worden naar de omgeving.<\/p>\n\n\n<p>Je kunt dezelfde code van ontwikkeling naar productie overzetten zonder ook maar iets te wijzigen. De omgevingsvariabelen kunnen verschillen tussen omgevingen zonder de code te be\u00efnvloeden.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Reden #2: Ze Vereenvoudigen Het Configureren Van Applicaties<\/h3>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"777\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/04-They-Simplify-Configuring-Applications.jpg\" alt=\"Applicatie met drie verschillende omgevingsvertakkingen: ontwikkeling, staging, productie\" class=\"wp-image-43787 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/04-They-Simplify-Configuring-Applications.jpg.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/04-They-Simplify-Configuring-Applications-300x146.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/04-They-Simplify-Configuring-Applications-1024x497.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/04-They-Simplify-Configuring-Applications-768x373.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/04-They-Simplify-Configuring-Applications-1536x746.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/04-They-Simplify-Configuring-Applications-600x291.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/04-They-Simplify-Configuring-Applications-1200x583.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/04-They-Simplify-Configuring-Applications-730x355.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/04-They-Simplify-Configuring-Applications-1460x709.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/04-They-Simplify-Configuring-Applications-784x381.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/04-They-Simplify-Configuring-Applications-1568x761.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/04-They-Simplify-Configuring-Applications-877x426.jpg.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/777;\" \/><\/figure>\n\n\n<p>Omgevingsvariabelen vereenvoudigen het aanpassen van configuraties zonder code aan te raken:<\/p>\n\n\n<pre class=\"wp-block-code\"><code># .env bestand:\nDEBUG=true<\/code><\/pre>\n\n\n<p>Hier is hoe we het binnen het scriptbestand kunnen gebruiken:<\/p>\n\n\n<pre class=\"wp-block-code\"><code># Scriptinhoud:\nimport os\n\nDEBUG = os.environ.get('DEBUG') == 'true' \n\nif DEBUG:\n   print(\"In DEBUG-modus\")<\/code><\/pre>\n\n\n<p>Het in- en uitschakelen van de debugmodus vereist alleen een update van het .env-bestand\u2014er zijn geen code wijzigingen, heropbouw of herimplementaties nodig. &#8220;Env vars&#8221; voor kort, helpen ook naadloos te implementeren over verschillende omgevingen:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>import os\n\n# Haal omgevingsvariabele op om de huidige omgeving te bepalen (productie of staging)\ncurrent_env = os.getenv('APP_ENV', 'staging')  # Standaard naar 'staging' als deze niet is ingesteld\n\n# Productie API sleutel\nPROD_API_KEY = os.environ&#91;'PROD_API_KEY']\n\n# Staging API sleutel\nSTG_API_KEY = os.environ&#91;'STG_API_KEY']\n\n# Logica die api_key instelt op basis van de huidige omgeving\nif current_env == 'production':\n    api_key = PROD_API_KEY\nelse:\n    api_key = STG_API_KEY\n\n# Initialiseer API-client met de juiste API-sleutel\napi = ApiClient(api_key)<\/code><\/pre>\n\n\n<p>Dezelfde code kan aparte <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/glossary\/web-design\/api\/\" rel=\"noopener\">API<\/a> keys gebruiken voor productie vs staging zonder enige wijzigingen.<\/p>\n\n\n<p>En tot slot, ze stellen functieschakelaars in zonder nieuwe implementaties:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>NEW_FEATURE = os.environ&#91;'NEW_FEATURE'] == 'true'\n\nif NEW_FEATURE:\n   enableNewFeature()<\/code><\/pre>\n\n\n<p>Het wijzigen van de <em>NEW_FEATURE<\/em> var activeert functionaliteit onmiddellijk binnen onze code. De interface voor het bijwerken van configuraties is afhankelijk van de systemen:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.dreamhost.com\/blog\/cloud-development-environment\/\" target=\"_blank\" rel=\"noopener\">Cloud<\/a> platformen zoals Heroku gebruiken webdashboards<\/li>\n\n\n\n<li>Servers gebruiken OS-commandotools<\/li>\n\n\n\n<li>Lokale ontwikkeling kan .env-bestanden gebruiken<\/li>\n\n\n\n<\/ul>\n\n\n<p>Omgevingsvariabelen zijn nuttig bij het cre\u00ebren van applicaties, omdat ze gebruikers in staat stellen elementen naar hun behoeften te configureren.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Reden #3: Ze Helpen Bij Het Beheren Van Geheimen En Referenties<\/h3>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"777\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/05-They-Help-Manage-Secrets-And-Credentials.jpg\" alt=\"applicatiecode vertakt naar omgevingsvariabelen met vijf vertakkingen elk gelabeld geheimen\" class=\"wp-image-43788 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/05-They-Help-Manage-Secrets-And-Credentials.jpg.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/05-They-Help-Manage-Secrets-And-Credentials-300x146.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/05-They-Help-Manage-Secrets-And-Credentials-1024x497.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/05-They-Help-Manage-Secrets-And-Credentials-768x373.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/05-They-Help-Manage-Secrets-And-Credentials-1536x746.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/05-They-Help-Manage-Secrets-And-Credentials-600x291.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/05-They-Help-Manage-Secrets-And-Credentials-1200x583.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/05-They-Help-Manage-Secrets-And-Credentials-730x355.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/05-They-Help-Manage-Secrets-And-Credentials-1460x709.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/05-They-Help-Manage-Secrets-And-Credentials-784x381.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/05-They-Help-Manage-Secrets-And-Credentials-1568x761.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/05-They-Help-Manage-Secrets-And-Credentials-877x426.jpg.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/777;\" \/><\/figure>\n\n\n<p>Het direct in de broncode opnemen van geheimen zoals API-sleutels, wachtwoorden en priv\u00e9sleutels brengt aanzienlijke <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/cloud-security-tips\/\" rel=\"noopener\">beveiligingsrisico&#8217;s<\/a> met zich mee:<\/p>\n\n\n<pre class=\"wp-block-code\"><code># Vermijd het blootstellen van geheimen in code!\nSTRIPE_KEY = 'sk_live_1234abc'\nDB_PASSWORD = 'password123'\n\nstripe.api_key = STRIPE_KEY \ndb.connect(DB_PASSWORD)<\/code><\/pre>\n\n\n<p>Die inloggegevens zijn nu blootgesteld als deze code wordt gecommit naar een openbare <a target=\"_blank\" href=\"https:\/\/dreamhost.com\/blog\/how-to-use-wp-with-github\/\" rel=\"noopener\">GitHub repository<\/a>!<\/p>\n\n\n<p>Omgevingsvariabelen voorkomen lekkage door geheimen te externaliseren:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>import os\n\nSTRIPE_KEY = os.environ.get('STRIPE_KEY')  \nDB_PASS = os.environ.get('DB_PASS')   \n\nstripe.api_key = STRIPE_KEY  \ndb.connect(DB_PASS)<\/code><\/pre>\n\n\n<p>De daadwerkelijke geheime waarden worden ingesteld in een lokaal .env-bestand.<\/p>\n\n\n<pre class=\"wp-block-code\"><code># .env bestand\n\nSTRIPE_KEY=sk_live_1234abc\nDB_PASS=password123<\/code><\/pre>\n\n\n<p>Vergeten niet om het .env bestand in <code>.gitignore<\/code> te plaatsen om geheimen buiten versiebeheer te houden. Dit betekent dat het .env bestand in een .gitignore bestand in elke repo root moet worden gedefinieerd, wat git vertelt om het bestand te negeren tijdens het maken van commits.<\/p>\n\n\n<p>Dit scheidt geheime definities van applicatiecode, door ze veilig te laden uit beschermde omgevingen tijdens runtime. Het risico op het per ongeluk blootstellen van inloggegevens vermindert aanzienlijk.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Reden #4: Ze Bevorderen Consistentie<\/h3>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"777\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/06-They-Promote-Consistency.jpg\" alt=\"configuratie met vier vertakkingen die uitlopen op omgevingsvariabelen\" class=\"wp-image-43789 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/06-They-Promote-Consistency.jpg.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/06-They-Promote-Consistency-300x146.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/06-They-Promote-Consistency-1024x497.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/06-They-Promote-Consistency-768x373.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/06-They-Promote-Consistency-1536x746.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/06-They-Promote-Consistency-600x291.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/06-They-Promote-Consistency-1200x583.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/06-They-Promote-Consistency-730x355.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/06-They-Promote-Consistency-1460x709.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/06-They-Promote-Consistency-784x381.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/06-They-Promote-Consistency-1568x761.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/06-They-Promote-Consistency-877x426.jpg.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/777;\" \/><\/figure>\n\n\n<p>Stel je voor dat je verschillende configuratiebestanden hebt voor ontwikkeling, QA en productieomgevingen:<\/p>\n\n\n<pre class=\"wp-block-code\"><code># Ontwikkeling\nDB_HOST = 'localhost'\nDB_NAME = 'appdb_dev'\n\n# Productie\nDB_HOST = 'db.myapp.com'\nDB_NAME = 'appdb_prod'<\/code><\/pre>\n\n\n<p>Deze afwijking introduceert subtiele bugs die moeilijk te vangen zijn. Code die feilloos werkt in ontwikkeling kan opeens productie breken door niet overeenkomende configuraties.<\/p>\n\n\n<p>Omgevingsvariabelen lossen dit op door configuratie op \u00e9\u00e9n plek te centraliseren:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>DB_HOST=db.myapp.com\nDB_NAME=appdb_prod<\/code><\/pre>\n\n\n<p>Nu worden dezelfde variabelen consistent gebruikt in alle omgevingen. Je hoeft je niet langer zorgen te maken over willekeurige of onjuiste instellingen die in werking treden.<\/p>\n\n\n<p><strong>De applicatiecode verwijst eenvoudigweg naar de variabelen:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\"><code>import os\n\ndb_host = os.environ&#91;'DB_HOST']\ndb_name = os.environ&#91;'DB_NAME']\n\ndb.connect(db_host, db_name)<\/code><\/pre>\n\n\n<p>Of de app nu lokaal draait of op een productieserver, hij gebruikt altijd de juiste databasehost en -naam.<\/p>\n\n\n<p>Deze uniformiteit vermindert bugs, verbetert de voorspelbaarheid en maakt de app over het algemeen robuuster. Ontwikkelaars kunnen erop vertrouwen dat de code zich identiek zal gedragen in elke omgeving.<\/p>\n\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>\n\n<h2 id=\"define\" class=\"wp-block-heading\">Hoe Kun Je Omgevingsvariabelen Defini\u00ebren<\/h2>\n\n\n<p>Omgevingsvariabelen kunnen op verschillende plaatsen worden gedefinieerd, wat flexibiliteit biedt bij het instellen en toegang krijgen tot deze variabelen over processen en systemen heen.<\/p>\n\n\n<h3 class=\"wp-block-heading\">1. Omgevingsvariabelen van het Besturingssysteem<\/h3>\n\n\n<p>De meeste besturingssystemen bieden ingebouwde mechanismen voor het defini\u00ebren van globale variabelen. Hierdoor zijn de variabelen systeembreed toegankelijk voor alle gebruikers, applicaties, enz.<\/p>\n\n\n<p>Op Linux\/Unix-systemen kunnen variabelen worden gedefinieerd in opstartscripts van de shell.<\/p>\n\n\n<p>Bijvoorbeeld, ~\/.bashrc kan worden gebruikt om gebruikersniveau variabelen in te stellen, terwijl \/etc\/environment voor systeembrede variabelen is die alle gebruikers kunnen benaderen.<\/p>\n\n\n<p>Variabelen kunnen ook inline worden ingesteld voor het uitvoeren van commando&#8217;s met behulp van het export commando of rechtstreeks via het env commando in bash:<\/p>\n\n\n<pre class=\"wp-block-code\"><code># In ~\/.bashrc\nexporteer DB_URL=localhost\nexporteer APP_POORT=3000<\/code><\/pre>\n\n\n<pre class=\"wp-block-code\"><code># In \/etc\/environment\nDB_HOST=localhost\nDB_NAME=mydatabase<\/code><\/pre>\n\n\n<p>Variabelen kunnen ook inline worden ingesteld voordat commando&#8217;s worden uitgevoerd:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>export TOKEN=abcdef\npython app.py<\/code><\/pre>\n\n\n<p>Variabelen defini\u00ebren op het OS-niveau maakt ze wereldwijd beschikbaar, wat erg handig is wanneer je de app wilt uitvoeren zonder afhankelijk te zijn van interne waarden.<\/p>\n\n\n<p>Je kunt ook gedefinieerde variabelen in scripts of opdrachtregelargumenten aanroepen.<\/p>\n\n\n<pre class=\"wp-block-code\"><code>python app.py --db-name $DB_NAME --db-host $DB_HOST --batch-size $BATCH_SIZE<\/code><\/pre>\n\n\n<h3 class=\"wp-block-heading\">2. Omgevingsvariabelen Defini\u00ebren In Applicatiecode<\/h3>\n\n\n<p>Naast OS-niveau variabelen kunnen omgevingsvariabelen worden gedefinieerd en rechtstreeks in de applicatiecode worden geopend terwijl deze wordt uitgevoerd.<\/p>\n\n\n<p>Het <em>os.environ<\/em> woordenboek in Python bevat alle momenteel gedefinieerde omgevingsvariabelen. We kunnen nieuwe instellen door simpelweg sleutel-waarde paren toe te voegen:<\/p>\n\n\n<p>Omgevingsvariabelen kunnen ook direct binnen de applicatiecode worden gedefinieerd en benaderd. In Python bevat de os.environ dictionary alle gedefinieerde omgevingsvariabelen:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>import os\nos.environ&#91;\"API_KEY\"] = \"123456\" \napi_key = os.environ.get(\"API_KEY\")<\/code><\/pre>\n\n\n<p>Dus, de os.environ dictionary maakt het dynamisch instellen en ophalen van omgevingsvariabelen mogelijk vanuit Python-code.<\/p>\n\n\n<p>De meeste talen worden geleverd met hun bibliotheken, waardoor je tijdens de runtime toegang hebt tot omgevingsvariabelen.<\/p>\n\n\n<p>Je kunt ook frameworks zoals Express, Django en Laravel gebruiken voor diepere integraties, zoals het automatisch laden van .env-bestanden die omgevingsvariabelen bevatten.<\/p>\n\n\n<h3 class=\"wp-block-heading\">3. Lokale Configuratiebestanden Aanmaken Voor Omgevingsvariabelen<\/h3>\n\n\n<p>Naast systeemniveau variabelen kunnen omgevingsvariabelen worden geladen uit lokale configuratiebestanden van een applicatie. Dit houdt configuratiedetails gescheiden van code, zelfs voor lokale ontwikkeling en testen.<\/p>\n\n\n<p>Enkele populaire methoden:<\/p>\n\n\n<p><strong>.env Bestanden<\/strong><\/p>\n\n\n<p>Het .env bestandsformaat, populair gemaakt door Node.js, biedt een handige manier om omgevingsvariabelen in een sleutel-waarde formaat te specificeren:<\/p>\n\n\n<pre class=\"wp-block-code\"><code># .env\nDB_URL=localhost\nAPI_KEY=123456<\/code><\/pre>\n\n\n<p>Webframeworks zoals Django en Laravel laden automatisch variabelen die gedefinieerd zijn in .env-bestanden in de applicatieomgeving. Voor andere talen zoals Python, zorgen bibliotheken zoals python-dotenv voor het importeren van .env-bestanden:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>from dotenv import load_dotenv\nload_dotenv() # Laadt .env variabelen\n\nprint(os.environ&#91;'DB_URL']) # localhost<\/code><\/pre>\n\n\n<p>Het voordeel van het gebruik van .env-bestanden is dat ze de configuratie schoon en gescheiden houden zonder wijzigingen aan de code aan te brengen.<\/p>\n\n\n<p><strong>JSON Configuratiebestanden<\/strong><\/p>\n\n\n<p>Voor complexere configuratiebehoeften die meerdere omgevingsvariabelen omvatten, helpt het gebruik van JSON- of YAML-bestanden om variabelen samen te organiseren:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>\/\/ config.json\n{\n  \"api_url\": \"https:\/\/api.example.com\",\n  \"api_key\": \"123456\", \n  \"port\": 3000\n}<\/code><\/pre>\n\n\n<p>Applicatiecode kan dan snel deze JSON-gegevens laden als een woordenboek om geconfigureerde variabelen te benaderen:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>import json\n\nconfig = json.load('config.json')  \n\napi_url = config&#91;'api_url']\napi_key = config&#91;'api_key'] \nport = config&#91;'port'] # 3000<\/code><\/pre>\n\n\n<p>Dit voorkomt rommelige dotenv-bestanden bij het omgaan met meerdere app-configuraties.<\/p>\n\n\n<h2 id=\"access\" class=\"wp-block-heading\">Hoe Krijg Je Toegang Tot Omgevingsvariabelen In Verschillende Programmeertalen?<\/h2>\n\n\n<p>Hoe we ook kiezen om omgevingsvariabelen te defini\u00ebren, onze applicaties hebben een consistente manier nodig om waarden op te zoeken tijdens runtime.<\/p>\n\n\n<p>Hoewel er verschillende manieren bestaan om omgevingsvariabelen te defini\u00ebren, heeft applicatiecode een standaard manier nodig om ze tijdens runtime te benaderen, ongeacht de taal. Hier is een overzicht van technieken om omgevingsvariabelen te benaderen in populaire talen:<\/p>\n\n\n<h3 class=\"wp-block-heading\">Python<\/h3>\n\n\n<p>Python biedt het os.environ woordenboek om toegang te krijgen tot gedefinieerde omgevingsvariabelen:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>import os\n\ndb = os.environ.get('DB_NAME')\n\nprint(db)<\/code><\/pre>\n\n\n<p>We kunnen een variabele ophalen met os.environ.get(), wat None retourneert als deze niet gedefinieerd is. Of direct toegang krijgen via os.environ(), wat een KeyError zal opwerpen als het niet aanwezig is.<\/p>\n\n\n<p>Aanvullende methoden zoals os.getenv() en os.environ.get() maken het specificeren van standaardwaarden mogelijk als deze niet zijn ingesteld.<\/p>\n\n\n<h3 class=\"wp-block-heading\">JavaScript (Node.js)<\/h3>\n\n\n<p>In <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/what-is-node-js\/\" rel=\"noopener\">Node.js<\/a> JavaScript code, omgevingsvariabelen zijn beschikbaar op het globale process.env object:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Haal env var op\nconst db = process.env.DB_NAME;\n\nconsole.log(db);<\/code><\/pre>\n\n\n<p>Als niet gedefinieerd, zal process.env undefined bevatten. We kunnen ook standaardwaarden leveren zoals:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>const db = process.env.DB_NAME || 'defaultdb';<\/code><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Ruby<\/h3>\n\n\n<p>Ruby-applicaties krijgen toegang tot omgevingsvariabelen via de ENV-hash:<\/p>\n\n\n<pre class=\"wp-block-code\"><code># Toegang tot variabele \ndb = ENV&#91;'DB_NAME']  \n\nputs db<\/code><\/pre>\n\n\n<p>We kunnen ook een standaardwaarde doorgeven als de gewenste sleutel niet bestaat:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>db = ENV.fetch('DB_NAME', 'defaultdb')<\/code><\/pre>\n\n\n<h3 class=\"wp-block-heading\">PHP<\/h3>\n\n\n<p>PHP biedt globale methoden getenv(), $_ENV en $_SERVER om toegang te krijgen tot omgevingsvariabelen:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Haal omgevingsvariabele op\n$db_name = getenv('DB_NAME');\n\n\/\/ Of toegang tot $_ENV of $_SERVER arrays \n$db_name = $_ENV&#91;'DB_NAME'];<\/code><\/pre>\n\n\n<p>Afhankelijk van de variabele bron kunnen ze beschikbaar zijn in verschillende globals.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Java<\/h3>\n\n\n<p>In Java geeft de methode System.getenv() omgevingsvariabelen terug die kunnen worden benaderd:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>String dbName = System.getenv(\"DB_NAME\");<\/code><\/pre>\n\n\n<p>Hierdoor heb je toegang tot variabelen die wereldwijd op systeemniveau in Java zijn gedefinieerd.<\/p>\n\n\n<p>Voor nu enkele beste praktijken rondom hygi\u00ebne van omgevingsvariabelen.<\/p>\n\n\n<h2 id=\"security\" class=\"wp-block-heading\">Gids Voor De Beveiliging Van Omgevingsvariabelen<\/h2>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"800\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/07-Environment-Variables-Security-Best-Practices.jpg\" alt=\"sla geen gevoelige informatie op, gebruik omgevingsspecifieke variabelen, houd geheimen buiten versiebeheer, beveilig geheimen op productieservers, gebruik sterke encryptie-algoritmen, roteer geheimen regelmatig\" class=\"wp-image-43790 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/07-Environment-Variables-Security-Best-Practices.jpg.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/07-Environment-Variables-Security-Best-Practices-300x150.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/07-Environment-Variables-Security-Best-Practices-1024x512.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/07-Environment-Variables-Security-Best-Practices-768x384.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/07-Environment-Variables-Security-Best-Practices-1536x768.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/07-Environment-Variables-Security-Best-Practices-600x300.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/07-Environment-Variables-Security-Best-Practices-1200x600.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/07-Environment-Variables-Security-Best-Practices-730x365.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/07-Environment-Variables-Security-Best-Practices-1460x730.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/07-Environment-Variables-Security-Best-Practices-784x392.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/07-Environment-Variables-Security-Best-Practices-1568x784.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/07-Environment-Variables-Security-Best-Practices-877x439.jpg.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/800;\" \/><\/figure>\n\n\n<p>Als het gaat om het veilig beheren van omgevingsvariabelen, moeten we verschillende beste praktijken in gedachten houden.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Bewaar Nooit Gevoelige Informatie In Code<\/h3>\n\n\n<p>Allereerst, bewaar nooit gevoelige informatie zoals wachtwoorden, API-sleutels of tokens direct in je code.<\/p>\n\n\n<p>Het kan verleidelijk zijn om gewoon een databasewachtwoord of een encryptiesleutel in je broncode te hardcoderen voor snelle toegang, maar weersta die drang!<\/p>\n\n\n<p>Als je per ongeluk die code naar een openbare repository op GitHub uploadt, zend je in feite je geheimen uit naar de hele wereld. Stel je voor dat een hacker toegang krijgt tot je productiedatabasegegevens alleen omdat ze in platte tekst in je codebase staan. Beangstigend idee, toch?<\/p>\n\n\n<p>Gebruik in plaats daarvan altijd omgevingsvariabelen om gevoelige configuraties op te slaan. Bewaar je geheimen op een veilige plek zoals een .env-bestand of een geheimenbeheertool, en verwijs ernaar in je code via omgevingsvariabelen. Bijvoorbeeld, in plaats van zoiets te doen in je Python-code:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>db_password = \"supers3cr3tpassw0rd\"<\/code><\/pre>\n\n\n<p>Je zou dat wachtwoord opslaan in een omgevingsvariabele zoals dit:<\/p>\n\n\n<pre class=\"wp-block-code\"><code># .env-bestand\nDB_PASSWORD=supers3cr3tpassw0rd<\/code><\/pre>\n\n\n<p>En dan toegang krijgen tot het in je code zoals:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>import os\ndb_password = os.environ.get('DB_PASSWORD')<\/code><\/pre>\n\n\n<p>Zo blijven je geheimen veilig, zelfs als je broncode gecompromitteerd wordt. Omgevingsvariabelen fungeren als een veilige abstractielaag.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Gebruik Omgevingsspecifieke Variabelen<\/h3>\n\n\n<p>Een andere praktijk is het gebruik van verschillende omgevingsvariabelen voor elke applicatieomgeving, zoals ontwikkeling, staging en productie.<\/p>\n\n\n<p>Je wilt niet per ongeluk verbinding maken met je productiedatabase tijdens het ontwikkelen op je lokale machine, alleen omdat je vergat een configuratievariabele bij te werken! Gebruik namespaces voor je omgevingsvariabelen voor elke omgeving:<\/p>\n\n\n<pre class=\"wp-block-code\"><code># Ontwikkeling\nDEV_API_KEY=abc123\nDEV_DB_URL=localhost\n\n# Productie\nPROD_API_KEY=xyz789\nPROD_DB_URL=proddb.amazonaws.com<\/code><\/pre>\n\n\n<p>Verwijs vervolgens naar de juiste variabelen in je code, afhankelijk van de huidige omgeving. Veel frameworks zoals Rails bieden omgevingsspecifieke configuratiebestanden hiervoor.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Houd Geheimen Buiten Versiebeheer<\/h3>\n\n\n<p>Het is ook cruciaal om je .env en config bestanden met geheimen buiten versiebeheer te houden. Voeg .env toe aan je <code>.gitignore<\/code> zodat je het niet per ongeluk commit naar je repository.<\/p>\n\n\n<p>Je kunt <code>git-secrets<\/code> gebruiken om te scannen op gevoelige informatie voor elke commit. Voor extra beveiliging, versleutel je geheimenbestand voordat je het opslaat. Hulpmiddelen zoals Ansible Vault en BlackBox kunnen hierbij helpen.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Beveiligde Geheimen Op Productieservers<\/h3>\n\n\n<p>Wanneer je omgevingsvariabelen beheert op je productieservers, vermijd ze dan in te stellen met behulp van opdrachtregelargumenten, die kunnen worden ge\u00efnspecteerd via de processtabel.<\/p>\n\n\n<p>Gebruik in plaats daarvan de omgevingsbeheertools van je besturingssysteem of containerorkestratieplatform. Je kunt bijvoorbeeld Kubernetes Secrets gebruiken om geheimen veilig op te slaan en beschikbaar te stellen aan je applicatiepods.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Gebruik Sterke Encryptiealgoritmen<\/h3>\n\n\n<p>Gebruik robuuste en moderne versleutelingsalgoritmen bij het versleutelen van je geheimen, of ze nu onderweg zijn of worden opgeslagen. Vermijd verouderde algoritmen zoals DES of MD5, die bekende kwetsbaarheden hebben. Kies in plaats daarvan voor industriestandaard algoritmen zoals AES-256 voor symmetrische versleuteling en RSA-2048 of ECDSA voor asymmetrische versleuteling.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Wissel Geheimen Regelmatig<\/h3>\n\n\n<p>Draai je geheimen regelmatig, vooral als je vermoedt dat ze mogelijk gecompromitteerd zijn. Behandel geheimen zoals je een wachtwoord zou behandelen \u2014 vernieuw ze elke paar maanden. Een geheimenbeheertool zoals Hashicorp Vault of AWS Secrets Manager kan helpen dit proces te automatiseren.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Wees Voorzichtig Met Loggen En Foutenrapportage<\/h3>\n\n\n<p>Wees voorzichtig met loggen en foutenrapportage. Zorg ervoor dat je geen omgevingsvariabelen logt die gevoelige waarden bevatten. Als je een foutopsporingstool van derden gebruikt, configureer deze dan om gevoelige gegevens te zuiveren. Het laatste wat je wilt, is dat je geheimen verschijnen in een stacktrace op een dashboard voor uitzonderingsrapportage!<\/p>\n\n\n<h2 id=\"avoid\" class=\"wp-block-heading\">Wanneer Moet Je Omgevingsvariabelen Vermijden?<\/h2>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"777\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/08-When-To-Avoid-Environment-Variables_.jpg\" alt=\"environment variable met 4 aftakkingen, maar elke met een x die de weg blokkeert naar complexe configuratie, gevoelige informatie, meerdere omgevingen, delen met team\" class=\"wp-image-43791 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/08-When-To-Avoid-Environment-Variables_.jpg.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/08-When-To-Avoid-Environment-Variables_-300x146.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/08-When-To-Avoid-Environment-Variables_-1024x497.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/08-When-To-Avoid-Environment-Variables_-768x373.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/08-When-To-Avoid-Environment-Variables_-1536x746.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/08-When-To-Avoid-Environment-Variables_-600x291.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/08-When-To-Avoid-Environment-Variables_-1200x583.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/08-When-To-Avoid-Environment-Variables_-730x355.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/08-When-To-Avoid-Environment-Variables_-1460x709.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/08-When-To-Avoid-Environment-Variables_-784x381.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/08-When-To-Avoid-Environment-Variables_-1568x761.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2024\/03\/08-When-To-Avoid-Environment-Variables_-877x426.jpg.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/777;\" \/><\/figure>\n\n\n<p>Er zijn verschillende gevallen waarbij omgevingsvariabelen vermeden moeten worden:<\/p>\n\n\n<h3 class=\"wp-block-heading\">Beheren Van Complexe Configuratie<\/h3>\n\n\n<p>Het gebruiken van omgevingsvariabelen om de configuratie voor complexe softwaresystemen te beheren kan rommelig en foutgevoelig worden. Naarmate het aantal configuratieparameters groeit, eindig je met lange namen voor omgevingsvariabelen die onbedoeld kunnen botsen. Er is ook geen gemakkelijke manier om gerelateerde configuratiewaarden samen te organiseren.<\/p>\n\n\n<p>In plaats van omgevingsvariabelen te gebruiken, overweeg om configuratiebestanden in een formaat zoals JSON of YAML te gebruiken. Deze stellen je in staat om:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Groepeer gerelateerde configuratieparameters samen in een geneste structuur.<\/li>\n\n\n\n<li>Vermijd naamconflicten door config te encapsuleren in scopes en namespaces.<\/li>\n\n\n\n<li>Definieer aangepaste gegevenstypen in plaats van alleen strings.<\/li>\n\n\n\n<li>Bekijk en wijzig snel configuraties met behulp van een teksteditor.<\/li>\n\n\n\n<\/ul>\n\n\n<h3 class=\"wp-block-heading\">Gevoelige Informatie Opslaan<\/h3>\n\n\n<p>Hoewel het eenvoudig lijkt om omgevingsvariabelen te gebruiken voor het invoegen van externe configuraties zoals API-sleutels, databasewachtwoorden, enz., kan dit beveiligingsproblemen veroorzaken.<\/p>\n\n\n<p>Het probleem is dat omgevingsvariabelen globaal toegankelijk zijn in een proces. Dus, als er een exploit bestaat in een deel van je applicatie, kan het geheimen die opgeslagen zijn in omgevingsvariabelen in gevaar brengen.<\/p>\n\n\n<p>Een veiligere aanpak is het gebruik van een geheimebeheerservice die de codering en toegangscontrole afhandelt. Deze diensten maken het mogelijk om gevoelige gegevens extern op te slaan en bieden SDK&#8217;s voor het ophalen van applicatiewaarden.<\/p>\n\n\n<p>Dus, overweeg het gebruik van een specifieke geheimenbeheeroplossing in plaats van omgevingsvariabelen voor inloggegevens en priv\u00e9sleutels. Dit vermindert het risico dat gevoelige gegevens per ongeluk worden blootgesteld door exploits of onbedoeld loggen.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Werken Met Meerdere Omgevingen<\/h3>\n\n\n<p>Het beheren van omgevingsvariabelen kan lastig worden naarmate applicaties groeien en worden ge\u00efmplementeerd in meerdere omgevingen (dev, staging, prod). Je kunt gefragmenteerde configuratiegegevens verspreid hebben over verschillende bash-scripts, deploymenttools, enz.<\/p>\n\n\n<p>Een configuratiebeheeroplossing helpt om alle omgevingsspecifieke instellingen te consolideren op een centrale plek. Dit kunnen bestanden in een repository zijn, een speciale configuratieserver, of ge\u00efntegreerd met je CI\/CD-pipelines.<\/p>\n\n\n<p>Als het doel is om dubbele omgevingsvariabelen te vermijden, is een enkele bron van waarheid voor configuraties logischer.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Configuratie Delen Over Teams<\/h3>\n\n\n<p>Omdat omgevingsvariabelen lokaal per proces worden geladen, wordt het delen en synchroniseren van configuratiegegevens tussen verschillende teams die aan dezelfde applicatie of dienstensuite werken erg moeilijk.<\/p>\n\n\n<p>Elk team kan zijn eigen kopie van configuratiewaarden in verschillende bash-scripts, deployment-manifesten, enz. bijhouden. Deze gedecentraliseerde configuratie leidt tot het volgende:<\/p>\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Configuratieverschillen<\/strong>: Zonder een enkele bron van waarheid is het gemakkelijk voor de configuratie om inconsistent te worden over omgevingen heen omdat verschillende teams onafhankelijke wijzigingen maken.<\/li>\n\n\n\n<li><strong>Gebrek aan zichtbaarheid<\/strong>: Er is geen gecentraliseerde manier om de gehele configuratiestatus over alle diensten te bekijken, te zoeken en te analyseren. Dit maakt het uiterst moeilijk om te begrijpen hoe een dienst is geconfigureerd.<\/li>\n\n\n\n<li><strong>Audituitdagingen<\/strong>: Wijzigingen aan omgevingsvariabelen worden niet op een standaard manier bijgehouden, wat het moeilijk maakt om te controleren wie wat heeft gewijzigd en wanneer.<\/li>\n\n\n\n<li><strong>Testmoeilijkheden<\/strong>: Zonder een manier om eenvoudig een snapshot te maken en configuratie te delen, wordt het enorm lastig om consistente omgevingen voor ontwikkeling en testen te garanderen.<\/li>\n\n\n\n<\/ol>\n\n\n<p>In plaats van deze gefragmenteerde aanpak zorgt een gecentraliseerde configuratieoplossing ervoor dat teams de configuratie kunnen beheren vanaf een enkel platform of repository.<\/p>\n\n\n<h2 id=\"build\" class=\"wp-block-heading\">Bouw Je Apps Met Omgevingsvariabelen Voor De Lange Termijn<\/h2>\n\n\n<p>Naarmate je applicatie groeit, overweeg hoe je mogelijk geavanceerdere manieren nodig hebt om de configuratie-instellingen te beheren.<\/p>\n\n\n<p>Wat nu eenvoudig lijkt, kan later ingewikkelder worden. Je zult waarschijnlijk betere manieren nodig hebben om toegang te beheren, teaminstellingen te delen, alles duidelijk te organiseren en configuraties soepel bij te werken.<\/p>\n\n\n<p>Box jezelf niet in door vanaf het begin alleen maar omgevingsvariabelen te gebruiken. Je wilt plannen hoe je configuraties gaat beheren naarmate je behoeften toenemen.<\/p>\n\n\n<p>Terwijl omgevingsvariabelen geweldig zijn voor het omgaan met omgevingsgerichte gegevens zoals inloggegevens, databasenamen, lokale IP&#8217;s, enzovoort, wil je een systeem cre\u00ebren dat solide principes volgt zoals beveiliging, deelbaarheid, organisatie en het vermogen om snel aan veranderingen aan te passen.<\/p>\n\n\n<p>De alternatieven die we hebben besproken, zoals het gebruik van een speciaal configuratiebestand of dienst, hebben waardevolle functies die overeenkomen met die principes. Dat zal je helpen om snel te blijven bewegen zonder vertraagd te worden.<\/p>\n\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>","protected":false},"excerpt":{"rendered":"<p>Deze beginner-vriendelijke gids legt uit wat er zo geweldig is aan omgevingsvariabelen en hoe je ze in je voordeel kunt gebruiken.<\/p>\n","protected":false},"author":1006,"featured_media":43775,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_metadesc":"Deze gebruiksvriendelijke gids legt uit wat er zo geweldig is aan omgevingsvariabelen en hoe je ze in je voordeel kunt gebruiken.","toc_headlines":"[[\"what\",\"Wat Zijn Omgevingsvariabelen?\"],[\"why\",\"Waarom Zijn Omgevingsvariabelen Waardevol?\"],[\"define\",\"Hoe Kun Je Omgevingsvariabelen Defini\u00ebren\"],[\"access\",\"Hoe Krijg Je Toegang Tot Omgevingsvariabelen In Verschillende Programmeertalen?\"],[\"security\",\"Gids Voor De Beveiliging Van Omgevingsvariabelen\"],[\"avoid\",\"Wanneer Moet Je Omgevingsvariabelen Vermijden?\"],[\"build\",\"Bouw Je Apps Met Omgevingsvariabelen Voor De Lange Termijn\"]]","hide_toc":false,"footnotes":""},"categories":[14938],"tags":[],"class_list":["post-70906","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-hosting-nl"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Wat Zijn Omgevingsvariabelen: Een Grondige Gids Voor Beginners - DreamHost Blog<\/title>\n<meta name=\"description\" content=\"Deze gebruiksvriendelijke gids legt uit wat er zo geweldig is aan omgevingsvariabelen en hoe je ze in je voordeel kunt gebruiken.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wat Zijn Omgevingsvariabelen: Een Grondige Gids Voor Beginners\" \/>\n<meta property=\"og:description\" content=\"Deze gebruiksvriendelijke gids legt uit wat er zo geweldig is aan omgevingsvariabelen en hoe je ze in je voordeel kunt gebruiken.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/\" \/>\n<meta property=\"og:site_name\" content=\"DreamHost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreamHost\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-29T14:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-26T16:14:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/1460-x-1095-BLOG-HERO-_What-are-Environment-Variables_A-Thorough-Guide-for-Beginners.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"1095\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Brian Andrus\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:site\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Brian Andrus\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Wat Zijn Omgevingsvariabelen: Een Grondige Gids Voor Beginners - DreamHost Blog","description":"Deze gebruiksvriendelijke gids legt uit wat er zo geweldig is aan omgevingsvariabelen en hoe je ze in je voordeel kunt gebruiken.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/","og_locale":"en_US","og_type":"article","og_title":"Wat Zijn Omgevingsvariabelen: Een Grondige Gids Voor Beginners","og_description":"Deze gebruiksvriendelijke gids legt uit wat er zo geweldig is aan omgevingsvariabelen en hoe je ze in je voordeel kunt gebruiken.","og_url":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/","og_site_name":"DreamHost Blog","article_publisher":"https:\/\/www.facebook.com\/DreamHost\/","article_published_time":"2024-03-29T14:00:00+00:00","article_modified_time":"2025-05-26T16:14:46+00:00","og_image":[{"width":1460,"height":1095,"url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/1460-x-1095-BLOG-HERO-_What-are-Environment-Variables_A-Thorough-Guide-for-Beginners.jpg","type":"image\/jpeg"}],"author":"Brian Andrus","twitter_card":"summary_large_image","twitter_creator":"@dreamhost","twitter_site":"@dreamhost","twitter_misc":{"Written by":"Brian Andrus","Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/#article","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/"},"author":{"name":"Brian Andrus","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/a3f8817a11ac0b464bfbcb6c505cb82b"},"headline":"Wat Zijn Omgevingsvariabelen: Een Grondige Gids Voor Beginners","datePublished":"2024-03-29T14:00:00+00:00","dateModified":"2025-05-26T16:14:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/"},"wordCount":2889,"publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/1460-x-1095-BLOG-HERO-_What-are-Environment-Variables_A-Thorough-Guide-for-Beginners.jpg","articleSection":["Web Hosting"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/","name":"Wat Zijn Omgevingsvariabelen: Een Grondige Gids Voor Beginners - DreamHost Blog","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/#primaryimage"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/1460-x-1095-BLOG-HERO-_What-are-Environment-Variables_A-Thorough-Guide-for-Beginners.jpg","datePublished":"2024-03-29T14:00:00+00:00","dateModified":"2025-05-26T16:14:46+00:00","description":"Deze gebruiksvriendelijke gids legt uit wat er zo geweldig is aan omgevingsvariabelen en hoe je ze in je voordeel kunt gebruiken.","breadcrumb":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/#primaryimage","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/1460-x-1095-BLOG-HERO-_What-are-Environment-Variables_A-Thorough-Guide-for-Beginners.jpg","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/1460-x-1095-BLOG-HERO-_What-are-Environment-Variables_A-Thorough-Guide-for-Beginners.jpg","width":1460,"height":1095,"caption":"What Are Environment Variables: A Thorough Guide For Beginners"},{"@type":"BreadcrumbList","@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/wat-zijn-omgevingsvariabelen-een-grondige-gids-voor-beginners-nl\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dhblog.dream.press\/blog\/"},{"@type":"ListItem","position":2,"name":"Wat Zijn Omgevingsvariabelen: Een Grondige Gids Voor Beginners"}]},{"@type":"WebSite","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website","url":"https:\/\/www-dev.dreamhost.com\/blog\/","name":"DreamHost Blog","description":"","publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www-dev.dreamhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization","name":"DreamHost","url":"https:\/\/www-dev.dreamhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","contentUrl":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","width":1200,"height":168,"caption":"DreamHost"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreamHost\/","https:\/\/x.com\/dreamhost","https:\/\/www.instagram.com\/dreamhost\/","https:\/\/www.linkedin.com\/company\/dreamhost\/","https:\/\/www.youtube.com\/user\/dreamhostusa"]},{"@type":"Person","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/a3f8817a11ac0b464bfbcb6c505cb82b","name":"Brian Andrus","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2023\/10\/brian-andrus-150x150.jpg","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2023\/10\/brian-andrus-150x150.jpg","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2023\/10\/brian-andrus-150x150.jpg","caption":"Brian Andrus"},"description":"Brian is a Cloud Engineer at DreamHost, primarily responsible for cloudy things. In his free time he enjoys navigating fatherhood, cutting firewood, and self-hosting whatever he can.","url":"https:\/\/www-dev.dreamhost.com\/blog\/author\/brianandrus\/"}]}},"lang":"nl","translations":{"nl":70906,"es":43798,"en":43774,"pt":52136,"de":56446,"uk":56449,"pl":56470,"ru":56476,"it":68648,"fr":70873},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/70906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/users\/1006"}],"replies":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/comments?post=70906"}],"version-history":[{"count":2,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/70906\/revisions"}],"predecessor-version":[{"id":70908,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/70906\/revisions\/70908"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media\/43775"}],"wp:attachment":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media?parent=70906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=70906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=70906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}