ENV diferenciācijas pārbaudītājs
Salīdziniet divus .env failus (instalēšanas un ražošanas, pirms un pēc izvietošanas) un precīzi noskaidrojiet, kuras atslēgas tika pievienotas, noņemtas vai mainītas, automātiski maskējot slepenas vērtības.
Rezultāts
Salīdzinot inscenēšanas .env failu ar ražošanu vai šodienas izvietošanas konfigurāciju ar pagājušās nedēļas konfigurāciju, var redzēt, kā sākas īstie pārtraukumi: trūkst DATABASE_URL, PORT, kas klusi mainījās, API atslēga, kas tika pagriezta vienā vidē, bet ne otrā. Abu failu ielīmēšana vispārīgā teksta atšķirībā arī nepalīdz — tā parāda, kuras rindas atšķiras, nevis to, kuri vides mainīgie faktiski ir mainījušies, un ar prieku izdrukā visas slepenās vērtības skaidri redzamā brīdī, kad kopīgojat izvadi ar komandas biedru.
Šis rīks parsē abus failus tā, kā dotenv tos faktiski nolasa — viens KEY=vērtības pāris katrā rindā, # komentāri un tukšas rindiņas tiek ignorētas, vērtības ar vienpēdiņām vai dubultpēdiņām tiek bez pēdiņām (ar \n atsoļošanu tikai dubultpēdiņās, tieši tā, kā to nosaka dotenv konvencija), un izvēles eksportēšanas KEY=vērtības prefikss, ko viņavll izmantoja, izmantojot viņavll failus. Katrs fails kļūst par tīru atslēgas-vērtības karti, un pēc tam abas kartes tiek atšķirtas ar atslēgu: tikai failā A esošā ir “noņemta”, tikai failā B esošā ir “pievienota”, abos esošā vērtība ir “mainīta”, un identiskas vērtības ir “nemainītas” un pēc noklusējuma tiek paslēptas, lai tabula paliktu koncentrēta uz to, kas faktiski atšķiras.
Funkcija, kas padara to droši lietojamu ar īstiem noslēpumiem, ir automātiska maskēšana. Katra atšķirību tabulā parādītā vērtība tiek pārbaudīta, salīdzinot ar diviem neatkarīgiem signāliem: vai tās atslēgas nosaukums izskatās kā noslēpums (reģistratūru nejutīga atbilstība KEY, SECRET, TOKEN, PASSWORD, PRIVATE vai CREDENTIAL), vai arī pašai vērtībai ir augsta Šenona entropija — tas pats informācijas teorētiskais rādītājs (-Σ p(c) API karodziņš (-Σ p(c)··log)2sp) marķieri un nejaušas paroles, kas statistiski atšķiras no parastiem vārdiem, pat ja atslēgas nosaukums nedod nekādu mājienu. Ar jebkuru signālu pietiek, lai maskētu vērtību līdz tās pirmajām un pēdējām divām rakstzīmēm, kas tiek aprēķinātas neatkarīgi katras mainītās rindas vecajai un jaunajai pusei.
Viss — parsēšana, diferencēšana, entropijas vērtēšana un maskēšana — pilnībā darbojas jūsu pārlūkprogrammā; ne fails, ne no tiem iegūta vērtība nekad nekur netiek nosūtīta. Tā ir īstā garantija rīkam, kura uzdevums ir apskatīt divus failus, kas, iespējams, satur reālus datu bāzes akreditācijas datus, API atslēgas un paroles blakus.