Geheimnisse mit Umgebungsvariablen schützen
API-Keys und Passwörter aus dem Code heraushalten
⏱ ca. ~7 Min
01 · Lesen
Der Fehler, der Firmen schon Millionen gekostet hat: API-Keys und Passwörter direkt in den Quellcode committen.
Sobald Geheimnisse in der Git-History landen, sind sie für immer da. Selbst wenn du sie im nächsten Commit löschst, kann jeder, der das Repo geklont hat, sie in der History finden. Bots scannen GitHub aktiv nach versehentlich committeten Keys und nutzen sie innerhalb von Minuten aus.
Die Lösung ist einfach: Umgebungsvariablen. Statt Geheimnisse im Code zu schreiben, speicherst du sie in einer .env-Datei, die niemals committet wird. Dein Programm liest die Werte zur Laufzeit, und deine Geheimnisse bleiben sicher.
💡 Stell dir das so vorStell dir Umgebungsvariablen wie einen Bürotresor vor. Du klebst das Passwort nicht an den Monitor (das ist hartcodierter Code). Du sperrst es in den Tresor (.env-Datei) und holst es heraus, wenn du es brauchst. Und du fotokopierst den Tresorinhalt natürlich nicht und verteilst ihn an alle (in git committen).
02 · Lesen
Du erbst eine Node.js-App mit einem ernsten Problem: Geheimnisse sind hartcodiert im Quellcode. Wir finden sie und richten dann das Setup so ein, dass die Geheimnisse sicher gespeichert sind.
03 · Terminal-Übung
Finde zuerst die hartcodierten Geheimnisse im Code. Nutze grep, um nach allem zu suchen, was wie ein API-Key oder Passwort aussieht.
(Diese Sektion ist interaktiv — aktiviere JavaScript, um sie zu nutzen.)
04 · Terminal-Übung
Erstelle jetzt eine .env-Datei, um die Geheimnisse sicher zu speichern. Diese Datei enthält die echten Werte, und wir stellen sicher, dass sie niemals in git committet wird.
(Diese Sektion ist interaktiv — aktiviere JavaScript, um sie zu nutzen.)
05 · Terminal-Übung
Der entscheidende Schritt: füge .env zur .gitignore hinzu, damit sie niemals committet wird. Ohne das würde git add . deine Geheimnisse in den nächsten Commit packen.
(Diese Sektion ist interaktiv — aktiviere JavaScript, um sie zu nutzen.)
06 · Code-Beispiel
So sieht die korrigierte app.js aus. Statt hartcodierter Werte liest sie nach dem Laden der .env aus process.env.
app.js — mit Umgebungsvariablen (korrigiert)
require('dotenv').config();
const express = require('express');
const app = express();
// Secrets come from .env, not hardcoded
const API_KEY = process.env.API_KEY;
const DB_PASSWORD = process.env.DB_PASSWORD;
const PORT = process.env.PORT || 3000;
console.log('API key loaded:', API_KEY ? 'Yes' : 'No');
// NEVER log the actual key value!
process.env liest aus der .env-Datei, nachdem dotenv sie geladen hat. || 3000 setzt einen Standardwert, falls PORT nicht gesetzt ist — ein häufiges Muster, damit deine App auch ohne .env läuft.
07 · Quiz
Warum solltest du niemals eine .env-Datei in git committen?
- Sie enthält Geheimnisse, die jeder sehen kann, der das Repo klont
- Sie macht das Repo zu groß
- Git unterstützt keine .env-Dateien
- .env-Dateien funktionieren nur auf deinem lokalen Rechner
08 · Ausfüllen
Wenn du dotenv in Node.js benutzt, greifst du mit process._____.API_KEY auf eine Umgebungsvariable namens API_KEY zu.
09 · Checkliste
Sicherheits-Checkliste für Umgebungsvariablen. Diese drei Schritte sollten in jedem Projekt zum Reflex werden.
- .env steht in der .gitignore
- Ich logge niemals echte Geheimwerte
- Ich habe eine .env.example mit Platzhalterwerten erstellt
Andere Lektionen aus diesem Kapitel
⚠ Das volle interaktive Erlebnis braucht JavaScript. Bitte aktiviere es und lade die Seite neu.
※ Diese Seite ist ein unabhängiges Bildungsprojekt — kein offizielles Anthropic-Produkt. Claude™ ist eine eingetragene Marke von Anthropic, PBC.