Un fișier .env este utilizat în mod obișnuit de site-urile web și aplicații pentru a stoca configurații specifice mediului. Acesta poate conține date de autentificare pentru baze de date, chei API, secrete ale aplicației, setări de e-mail și alte valori sensibile necesare pentru funcționarea aplicației.
Acest fișier nu trebuie să fie niciodată accesibil publicului dintr-un browser. Dacă un fișier .env poate fi deschis online, informațiile sensibile pot fi expuse, iar site-ul web, baza de date, conturile de e-mail sau serviciile conectate pot fi expuse riscului.
Cuprins
Ce este un fișier .env
Un fișier .env stochează valorile de configurare în afara codului principal al aplicației.
Aplicațiile îl folosesc adesea pentru a defini setări precum:
- numele de gazdă al bazei de date
- numele bazei de date
- numele de utilizator al bazei de date
- parola bazei de date
- cheile secrete ale aplicației
- cheile API
- datele de autentificare SMTP
- cheile serviciului de plăți
- token-urile de integrare cu terți
- setările de depanare
Acest lucru îi ajută pe dezvoltatori să păstreze configurația separată de fișierele aplicației. De asemenea, facilitează utilizarea unor setări diferite pentru mediile de dezvoltare, testare și producție.
De ce fișierele .env sunt sensibile
Un fișier .env conține adesea informații care permit accesul la alte sisteme.
De exemplu, datele de autentificare pentru baze de date pot permite accesul la conținutul site-ului web și la datele utilizatorilor. Cheile API pot permite accesul la servicii externe. Datele de autentificare SMTP pot permite trimiterea de e-mailuri de pe un domeniu sau dintr-o căsuță poștală.
Din acest motiv, un fișier .env trebuie tratat ca un fișier cu parole. Acesta nu este destinat să fie descărcat, indexat, partajat sau vizibil prin intermediul site-ului web.
Ce se poate întâmpla dacă un fișier .env este public
Dacă un fișier .env devine accesibil publicului, cineva ar putea citi informațiile confidențiale conținute în acesta.
În funcție de conținutul fișierului, acest lucru poate duce la:
- acces neautorizat la baza de date
- dezvăluirea informațiilor confidențiale ale aplicației
- abuzul de e-mailuri prin intermediul datelor de autentificare SMTP
- furtul cheilor API sau al token-urilor
- acces la servicii de plată, stocare sau automatizare
- compromiterea site-ului web
- trimiterea de spam
- scurgeri de date
- abuzul serviciilor sau costuri neașteptate
- probleme legate de reputația domeniului sau a adresei de e-mail
Riscul depinde de conținutul fișierului, dar orice fișier public .env ar trebui tratat ca un incident de securitate.
Dosarul public vs. fișierele private ale aplicației
O greșeală frecventă este plasarea fișierului .env într-un director web public.
Directorul web public este folderul servit direct de serverul web. Fișierele din acesta pot fi accesibile dintr-un browser dacă nicio regulă de protecție nu le blochează.
De exemplu, dacă folderul public al unui site web este:
public_html/
atunci plasarea unui fișier .env aici îl poate expune la o adresă URL precum:
https://example.com/.env
O structură mai sigură păstrează fișierul .env în afara directorului web public ori de câte ori aplicația permite acest lucru.
Un fișier ascuns nu înseamnă un fișier protejat
Punctul de la începutul fișierului .env înseamnă că fișierul este ascuns în multe gestionare de fișiere și vizualizări din linia de comandă. Acest lucru nu înseamnă automat că fișierul este protejat împotriva accesului web.
Posibilitatea de a deschide fișierul dintr-un browser depinde de configurația serverului și de locul în care este stocat fișierul.
Un fișier ascuns poate fi totuși public dacă este plasat într-un director servit de site-ul web și accesul nu este blocat.
Modul de depanare poate crește riscul
Unele aplicații utilizează valorile din fișierul .env pentru a controla modul de depanare.
Dacă modul de depanare este activat pe un site web live, paginile de eroare pot dezvălui căi de acces la fișiere, detalii de configurare, erori de bază de date, urme de stivă sau alte informații tehnice.
Modul de depanare ar trebui, în mod normal, să fie dezactivat pe site-urile de producție. Este util în timpul dezvoltării, dar poate expune informații care nu ar trebui să fie vizibile pentru vizitatori.
Cum să protejați fișierele .env
Cea mai sigură abordare este să păstrați fișierele .env în afara directorului web public, atunci când este posibil.
Dacă aplicația necesită ca fișierul .env să se afle în directorul proiectului, asigurați-vă că serverul web blochează accesul direct la acesta.
Pentru configurațiile bazate pe Apache, accesul poate fi adesea blocat cu reguli din fișierul .htaccess, în funcție de configurația de găzduire. Pentru configurațiile bazate pe Nginx, accesul este de obicei blocat prin configurația serverului.
Metoda exactă depinde de aplicație și de mediul de găzduire.
Ce trebuie verificat
Verificați următoarele:
- Confirmați unde se află fișierul
.env. - Verificați dacă se află într-un director web public.
- Încercați să deschideți
https://example.com/.envîntr-un browser. - Asigurați-vă că fișierul nu este vizibil și nu poate fi descărcat.
- Verificați dacă backup-urile, arhivele sau copiile vechi conțin fișiere
.env. - Verificați dacă fișierul
.enveste exclus din depozitele publice. - Dezactivați modul de depanare pe site-urile de producție.
- Verificați permisiunile fișierului.
- Verificați regulile serverului web care blochează fișierele sensibile.
- Schimbați secretele expuse dacă fișierul a fost vreodată public.
Un fișier .env blocat poate returna un răspuns 403, 404 sau similar. Important este ca conținutul său să nu fie afișat.
Dacă un fișier .env a fost expus
Dacă un fișier .env a fost accesibil publicului, nu vă limitați doar la mutarea sau ascunderea fișierului.
Presupuneți că valorile din interiorul acestuia ar fi putut fi copiate. Orice secret expus trebuie înlocuit, inclusiv parolele bazelor de date, cheile API, parolele SMTP, cheile aplicațiilor și token-urile.
După schimbarea datelor secrete, verificați site-ul web și serviciile conectate pentru a depista activități suspecte.
.fișiere .env și copii de rezervă
Copiile de rezervă, arhivele ZIP, folderele vechi ale proiectelor și copiile de implementare pot expune aceleași informații dacă sunt plasate în directoare publice.
Exemple includ:
.env.backup
.env.old
backup.zip
site-backup.tar.gz
project-copy/
Aceste fișiere nu ar trebui să fie accesibile publicului. Copiile vechi pot fi la fel de periculoase ca și fișierul activ .env, deoarece pot conține date de autentificare valide.
Semnificația practică pentru utilizatori
Un fișier .env trebuie tratat ca o configurație sensibilă, nu ca un fișier obișnuit al site-ului web.
Acesta nu trebuie să fie vizibil în browser, inclus în descărcările publice, lăsat în copiile de rezervă publice sau adăugat în depozitele publice de cod. Dacă o aplicație depinde de acesta, fișierul trebuie stocat și protejat în conformitate cu cerințele aplicației.
Dacă există vreo posibilitate ca fișierul să fi fost expus, cel mai sigur pas următor este să schimbați secretele, mai degrabă decât să modificați doar locația fișierului.
Rezumat
Fișierele .env nu trebuie să fie niciodată publice, deoarece conțin adesea date de autentificare, chei API, tokenuri și secrete ale aplicației. Dacă sunt expuse, acestea pot oferi acces neautorizat la baze de date, servicii de e-mail, platforme terțe sau chiar la site-ul web în sine.
Un fișier .env trebuie stocat, pe cât posibil, în afara directorului web public, blocat împotriva accesului din browser, exclus din depozitele publice și verificat cu atenție după orice suspiciune de expunere.