Dotenv (.env)

Specifikacija Standard

.env je raširena konvencija za čuvanje promenljivih okruženja u tekstualnim datotekama, ali sintaksa i učitavanje zavise od alata; to nije univerzalni standard.

Konvertujte ENV u JSON

Besplatan konvertor ENV u JSON u pregledaču. Konvertujte datoteke odmah na svom uređaju.

Pregled i metapodaci

Operativni sistemi i analizatori datoteka identifikuju ENV datoteke proverom početnog binarnog niza bajtova:

Izaberite ili prevucite datoteke ovde

Privatno - datoteke nikada ne napuštaju vaš uređaj

ili nalepite Ctrl+V
Garancija privatnosti: bez prenosa podataka preko mreže 0 bajtova poslato spoljnim serverima. Sva obrada je izvršena lokalno u bezbednom okruženju vašeg pregledača.

Potpis zaglavlja na nivou bajtova (magični bajtovi)

Operativni sistemi i analizatori datoteka identifikuju ENV datoteke proverom početnog binarnog niza bajtova:

HEKSADECIMALNI POTPIS (OFFSET 0):

41 2D 5A 5F 3D

ASCII REPREZENTACIJA: KEY=VAL

Standardizacija: Specifikacija Twelve-Factor App / Dotenv standard

Tehničke specifikacije

Arhitektura kontejneraParovi ključ=vrednost u običnom tekstu koji definišu promenljive okruženja operativnog sistema; opciono podržavaju prefikse export i navodnike
KompresijaNekomprimovani tekstualni tok
Bajtni redosled (Endianness)Tekstualni tok UTF-8
Prostori bojaNije primenljivo (konfiguraciona datoteka)
Kanali i strukturaImena promenljivih okruženja, vrednosti kao tekstualni nizovi i redovi komentara (#)
Maksimalne dimenzijeNeograničena dužina datoteke
TransparentnostNema
Strimovanje i progresivno učitavanjeSekvencijalno izvršavanje u strimu, red po red

Tehnička matrica poređenja: ENV u odnosu na konkurente

Tehnički atributENV (Trenutno)JSONYAMLINI
Upravljanje tajnamaOdvaja tajne od izvornog kodaPodrazumevano se čuva u repozitorijumuPodrazumevano se čuva u repozitorijumuPodrazumevano se čuva u repozitorijumu
Čistoća sintakseBez dodatnog koda: KEY=valueZahteva zagrade i navodnikeZahteva strogo uvlačenjeZahteva zaglavlja sekcija
Povezivanje sa okruženjem OS-aDirektno 1-na-1 podudaranje sa process.envZahteva parsiranje u objekatZahteva parsiranje u objekatZahteva parsiranje u objekat
Hijerarhija podatakaStriktno ravni parovi ključ-vrednostBeskonačna ugnježđena hijerarhijaBeskonačna ugnježđena hijerarhijaImenski prostori sekcija sa 1 nivoom

Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak

Aplikacija pada sa greškom 'TypeError: Cannot read property of undefined' za očekivane promenljive okruženja.

Osnovni uzrok: Razmaci oko znaka jednakosti (npr. 'KEY = VALUE' umesto 'KEY=VALUE') ili nezatvoreni navodnici.

Oporavak: Normalizujte i formatirajte sintaksu okruženja pomoću File2File.app Config Sanitizer-a.

Bezbednosna analiza i vektori napada parsera

Nikada ne unosite .env datoteke u git; uvek dodajte .env u .gitignore i koristite servise za upravljanje tajnama u produkciji.

Poznati vektori napada

  • Slučajni git commit koji izlaže produkcijske AWS ključeve i lozinke baza podataka na javnom GitHub-u.
  • Pogrešna konfiguracija veb servera koja servira '.env' datoteku direktno javnim HTTP zahtevima.
  • Ubacivanje komandi putem neeskejpovanog širenja promenljivih ljuske u dotenv učitačima.

Najbolje prakse za zaštitu: Nikada ne unosite .env datoteke u git; uvek dodajte .env u .gitignore i koristite servise za upravljanje tajnama u produkciji.

Istorijat i prekretnice

2013Biblioteka otvorenog koda 'dotenv' za Node.js popularizuje .env datoteke u modernom full-stack veb razvoju.
2011Adam Vigins objavljuje metodologiju Twelve-Factor App, koja nalaže da se konfiguracija čuva isključivo u okruženju.
2011Heroku je bio pionir u upravljanju promenljivama okruženja u oblaku, čime je inspirisao lokalnu emulaciju .env datoteka.

Ključne prednosti

  • Najbolja bezbednosna praksa: čuva lozinke baze podataka, API tokene i tajne ključeve za enkripciju van skladišta izvornog koda.
  • .env datoteke se koriste u više ekosistema, ali sintaksa i učitavanje zavise od alata.
  • Jednostavno za čitanje, pisanje i automatizaciju u skriptama za primenu i procesima kontinuirane integracije.

Tehnička ograničenja i nedostaci

  • Visok rizik od slučajnog izlaganja: programeri greškom dodaju '.env' datoteke u javne GitHub repozitorijume.
  • Nema izvorne enkripcije podataka u mirovanju bez posebnih alata kao što su Doppler ili dotenv-vault.
  • Nema podrške za složene ugnježđene strukture podataka (vrednosti su striktno ravne niske).

Zanimljivosti

  • Pravilo III čuvene metodologije 'Twelve-Factor App' izričito navodi: 'Čuvaj konfiguraciju u okruženju'.
  • Datoteka '.env' počinje tačkom, pa je operativni sistemi zasnovani na Unix-u podrazumevano tretiraju kao skrivenu datoteku.
  • Mnogi predlošci projekata isključuju .env datoteke da bi smanjili rizik od slučajnog objavljivanja tajni, ali se sadržaj predložaka za .gitignore razlikuje.

Često postavljana tehnička pitanja

Šta je .env fajl?

.env fajl je jednostavan tekstualni fajl koji čuva tajne ključeve, lozinke baza podataka i podešavanja okruženja kao KEY=VALUE parove, čuvajući ih bezbednim i odvojenim od izvornog koda.

Da li treba da prosledim (commit) .env na GitHub?

NE! NIKADA nemojte da komitujete .env fajl na GitHub ili bilo koje javno skladište. Time biste javno izložili svoje tajne lozinke i API ključeve.

Kako mogu da konvertujem ENV fajl u JSON?

Možete bezbedno da konvertujete .env fajlove u čiste JSON objekte ili YAML fajlove koristeći File2File.app direktno u vašem veb pretraživaču, tako da podaci ne napuštaju vaš uređaj.