Warum nicht in den Quelltext
Ein Schlüssel im Quelltext landet in der Versionsgeschichte – und bleibt dort, auch wenn er später entfernt wird. Wer das Repository jemals geklont hat, hat ihn. Bei öffentlichen Repositories dauert es erfahrungsgemäß Minuten, bis ein automatischer Scanner ihn findet.
Deshalb: Konfiguration gehört in die Umgebung, nicht in den Code. Derselbe Quelltext läuft dann in Entwicklung, Vorschau und Produktion – mit anderen Werten.
Wie man es macht
// lesen, nicht raten
const key = process.env.STRIPE_SECRET_KEY;
if (!key) throw new Error("STRIPE_SECRET_KEY fehlt");
- Früh prüfen: Fehlt eine Variable, soll die Anwendung beim Start abbrechen – nicht mitten in der ersten Zahlung.
- Nicht protokollieren: Kein
console.log(process.env), auch nicht beim Suchen eines Fehlers. - Getrennte Werte je Umgebung: Testschlüssel in der Vorschau, echte Schlüssel nur in der Produktion.
- Wechselbar halten: Ein Schlüssel, der nur an einer Stelle steht, lässt sich in einer Minute tauschen.
Wie es bei Branchway läuft
Umgebungsvariablen stehen je App in der Console. Sie werden verschlüsselt gespeichert, beim Start in den Container gegeben und sind nach dem Speichern nicht mehr im Klartext einsehbar – auch nicht für die Administration der Plattform.
Datenbank- und Speicherzugänge musst du gar nicht selbst eintragen: Beim Verknüpfen setzt die Plattform sie selbst und dreht sie mit, wenn sich etwas ändert.
Häufige Fragen
Was mache ich, wenn ein Schlüssel öffentlich geworden ist?
Sofort beim Anbieter widerrufen und einen neuen erzeugen. Ihn nur aus dem Quelltext zu löschen genügt nicht – in der Versionsgeschichte steht er weiter.
Kann ich eine .env-Datei hochladen?
In der Console lassen sich mehrere Werte auf einmal einfügen. Die Datei selbst gehört nicht ins Repository, sondern in die Ignorierliste.