0

ENV-Diff-Checker

Vergleichen Sie zwei .env-Dateien (Staging vs. Produktion, vor vs. nach einer Bereitstellung) und sehen Sie genau, welche Schlüssel hinzugefügt, entfernt oder geändert wurden, wobei geheimnisvoll wirkende Werte automatisch maskiert werden.

Buy Me a Coffee at ko-fi.com
Verarbeitung... 0%
Parsen beider Dateien
Berechnungsdifferenz
Geheimnisse maskieren
Fertig

Ergebnis

Wenn man eine Staging-.env-Datei mit der Produktion oder die heutige Bereitstellungskonfiguration mit der der letzten Woche vergleicht, kann man sehen, wie echte Ausfälle beginnen: eine fehlende DATABASE_URL, ein PORT, der sich stillschweigend geändert hat, ein API-Schlüssel, der in einer Umgebung rotiert wurde, in der anderen jedoch nicht. Das Einfügen beider Dateien in ein generisches Textdiff hilft auch nicht viel – es zeigt Ihnen, welche Zeilen sich unterscheiden, nicht welche Umgebungsvariablen sich tatsächlich geändert haben, und es gibt jeden geheimen Wert gut sichtbar aus, sobald Sie die Ausgabe mit einem Teamkollegen teilen.

Dieses Tool analysiert beide Dateien so, wie dotenv sie tatsächlich liest – ein KEY=value-Paar pro Zeile, # Kommentare und Leerzeilen werden ignoriert, Werte in einfachen oder doppelten Anführungszeichen ohne Anführungszeichen (wobei \n nur in doppelten Anführungszeichen steht, genau wie in der dotenv-Konvention festgelegt), und ein optionales export KEY=value-Präfix toleriert die Art und Weise, wie Shell-basierte Env-Dateien es verwenden. Jede Datei wird zu einer sauberen Schlüssel-Wert-Zuordnung, und die beiden Zuordnungen werden dann nach Schlüssel unterschieden: Nur in Datei A vorhanden, wird „entfernt“, nur in Datei B vorhanden, wird „hinzugefügt“, in beiden mit unterschiedlichem Wert vorhanden, wird „geändert“ und identische Werte werden „unverändert“ und standardmäßig ausgeblendet, sodass sich die Tabelle auf die tatsächlichen Unterschiede konzentriert.

Die Funktion, die die tatsächliche Verwendung mit echten Geheimnissen sicher macht, ist die automatische Maskierung. Jeder in der Diff-Tabelle angezeigte Wert wird anhand zweier unabhängiger Signale überprüft: Sieht sein Schlüsselname wie ein Geheimnis aus (eine Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung mit KEY, SECRET, TOKEN, PASSWORD, PRIVATE oder CREDENTIAL) oder weist der Wert selbst eine hohe Shannon-Entropie auf – das gleiche informationstheoretische Maß (-Σ p(c)·log2(p(c)) über die Zeichen des Werts), das API-Schlüssel, Token und zufällige Passwörter als statistisch unterschiedlich kennzeichnet aus gewöhnlichen Wörtern, auch wenn der Schlüsselname keinen Hinweis darauf gibt. Jedes Signal reicht aus, um einen Wert bis auf die ersten und letzten beiden Zeichen zu maskieren, die unabhängig für die alte und neue Seite jeder geänderten Zeile berechnet werden.

Alles – Parsing, Diffing, Entropiebewertung und Maskierung – läuft vollständig in Ihrem Browser; Weder die Datei noch der daraus extrahierte Wert werden jemals irgendwohin gesendet. Das ist die richtige Garantie für ein Tool, dessen einzige Aufgabe darin besteht, zwei Dateien zu untersuchen, die wahrscheinlich echte Datenbankanmeldeinformationen, API-Schlüssel und Passwörter nebeneinander enthalten.