Kontrola rozdílů ENV
Porovnejte dva soubory .env (předběžné vs. produkční, před vs. po nasazení) a přesně zjistěte, které klíče byly přidány, odstraněny nebo změněny, s tajně vypadajícími hodnotami automaticky maskovanými.
Výsledek
Porovnáním stagingového souboru .env s produkčním nebo dnešní konfigurace nasazení s konfigurací z minulého týdne pohledem ukazuje, jak začínají skutečné výpadky: chybějící DATABASE_URL, PORT, který se tiše změnil, klíč API, který se střídal v jednom prostředí, ale ne ve druhém. Příliš nepomůže ani vložení obou souborů do obecného textového rozdílu – ukáže vám, které řádky se liší, nikoli které proměnné prostředí se skutečně změnily, a radostně vytiskne každou tajnou hodnotu na očích v okamžiku, kdy sdílíte výstup se spoluhráčem.
Tento nástroj analyzuje oba soubory tak, jak je dotenv ve skutečnosti čte — jeden KEY=pár hodnot na řádek, # komentáře a prázdné řádky ignorovány, hodnoty s jednoduchými nebo dvojitými uvozovkami neuvozeny (s \n bez uvozovek pouze uvnitř dvojitých uvozovek, přesně jak určuje konvence dotenv), a volitelný export KEY=pár hodnoty toleruje způsob, jakým soubory env pocházející ze shellu. Každý soubor se stane čistou mapou klíče k hodnotě a tyto dvě mapy se pak liší podle klíče: přítomné pouze v souboru A je „odstraněno“, přítomné pouze v souboru B je „přidáno“, přítomné v obou s jinou hodnotou je „změněno“ a stejné hodnoty jsou „nezměněny“ a ve výchozím nastavení skryté, takže tabulka zůstane zaměřena na to, co se skutečně liší.
Funkce, díky které je bezpečné skutečně používat se skutečnými tajemstvími, je automatické maskování. Každá hodnota zobrazená v tabulce rozdílů je kontrolována na základě dvou nezávislých signálů: vypadá její název klíče jako tajný (shoda nerozlišující malá a velká písmena proti KEY, SECRET, TOKEN, PASSWORD, PRIVATE nebo CREDENTIAL), nebo má samotná hodnota vysokou Shannonovu entropii – stejná informačně-teoretická míra (-Σ p(c)·log2(p(c)·log2(p(c)) znaky příznaků API, náhodné znaky API statisticky odlišné od běžných slov, i když název klíče nedává žádnou nápovědu. Každý signál stačí k zamaskování hodnoty až po její první a poslední dva znaky, vypočítané nezávisle pro starou a novou stranu každého změněného řádku.
Vše – analýza, diffování, hodnocení entropie a maskování – běží výhradně ve vašem prohlížeči; žádný soubor ani žádná hodnota z nich extrahovaná se nikdy nikam neposílá. To je správná záruka pro nástroj, jehož celým úkolem je podívat se na dva soubory, které pravděpodobně obsahují skutečné přihlašovací údaje k databázi, klíče API a hesla vedle sebe.