ENV Fark Denetleyicisi
İki .env dosyasını karşılaştırın (hazırlama ve üretim, dağıtım öncesi ve sonrası) ve gizli görünen değerlerin otomatik olarak maskelenmesiyle tam olarak hangi anahtarların eklendiğini, kaldırıldığını veya değiştirildiğini görün.
Sonuç
Aşamalı bir .env dosyasını üretimle veya bugünün dağıtım yapılandırmasını geçen haftakiyle karşılaştırdığımızda, gerçek kesintilerin nasıl başladığı gözle görülür: eksik bir DATABASE_URL, sessizce değişen bir PORT, bir ortamda döndürülen ancak diğerinde döndürülmeyen bir API anahtarı. Her iki dosyayı da genel bir metin farklılığına yapıştırmak da pek yardımcı olmuyor - hangi ortam değişkenlerinin gerçekte değiştiğini değil, hangi satırların farklı olduğunu gösterir ve çıktıyı bir ekip arkadaşınızla paylaştığınız anda her gizli değeri açıkça görünür bir şekilde yazdırır.
Bu araç, her iki dosyayı da dotenv'in gerçekte okuduğu şekilde ayrıştırır - satır başına bir KEY=değer çifti, # yorum ve boş satırlar göz ardı edilir, tek veya çift tırnaklı değerler tırnak içine alınmaz (\n yalnızca çift tırnak içinde, tam olarak dotenv kuralında belirtildiği gibi çıkış yapılmaz) ve isteğe bağlı bir dışa aktarma KEY=değer öneki, kabuk kaynaklı env dosyalarının onu kullanma şeklini tolere eder. Her dosya temiz bir anahtar-değer haritası haline gelir ve iki haritanın farkı daha sonra anahtara göre değişir: yalnızca Dosya A'da mevcut olan 'kaldırılır', yalnızca Dosya B'de mevcut olan 'eklenir', her ikisinde de farklı bir değerle mevcut olan 'değiştirilir' ve aynı değerler varsayılan olarak 'değiştirilmez' ve gizlenir, böylece tablo gerçekte neyin farklı olduğuna odaklanmış halde kalır.
Bunu gerçek sırlarla kullanmayı güvenli kılan özellik, otomatik maskelemedir. Fark tablosunda gösterilen her değer iki bağımsız sinyale göre kontrol edilir: anahtar adı bir sır gibi mi görünüyor (ANAHTAR, SECRET, TOKEN, PASSWORD, PRIVATE veya CREDENTIAL ile büyük/küçük harfe duyarlı olmayan bir eşleşme) veya değerin kendisi yüksek Shannon entropisine sahip mi - API anahtarlarını, belirteçleri ve rastgele şifreleri işaretleyen aynı bilgi-teorik ölçüsü (değerin karakterleri üzerinde -Σ p(c)·log2(p(c)) Anahtar adı hiçbir ipucu vermese bile sıradan kelimelerden istatistiksel olarak farklıdır. Her iki sinyal de bir değeri, değiştirilen her satırın eski ve yeni tarafı için bağımsız olarak hesaplanan ilk ve son iki karakterine kadar maskelemek için yeterlidir.
Ayrıştırma, farklılaştırma, entropi puanlaması ve maskeleme gibi her şey tamamen tarayıcınızda çalışır; ne dosya ne de bunlardan çıkarılan herhangi bir değer hiçbir yere gönderilmez. Bu, tüm işi gerçek veritabanı kimlik bilgilerini, API anahtarlarını ve şifreleri içermesi muhtemel iki dosyayı yan yana incelemek olan bir araç için doğru garantidir.