2015-06-19 10 views
5

ho appena scoperto che laravel 5 possono dati sensibili in uscita e può portare a un ulteriore sfruttamento di molti ospiti:Impedire l'accesso del pubblico ai file di ENV

https://www.google.com/search?q=intext%3ADB_PASSWORD+ext%3Aenv&gws_rd=ssl

Voglio conoscere il modo per proteggere il mio file .env. Posso usare sotto il codice nel file .htaccess per proteggere il mio file .env dalla visualizzazione del browser?

# Protect .env 
<Files .env> 
Order Allow,Deny 
Deny from all 
</Files> 

sarà il mio codice di cui sopra in .htaccess lavoro e proteggere il mio file .env?

+2

malato segnala questo subito –

+1

finché il file .env è sopra un livello dalla cartella pubblica non vedo alcuna vulnerabilità. L'unico problema sarebbe se qualcuno crea un'altra app su un sottolivello della cartella pubblica o se la root dell'app si trova all'interno di un'altra root di dominio. .. Inoltre puoi aggiungere il file .env a robots.txt in modo che google non lo indicizzi. Ma il più importante è il primo che ho menzionato. – astroanu

+1

@Yousef questo non è un problema, perché il webroot è 'public /', non la radice del progetto. – Amelia

risposta

1

IMHO il modo migliore per proteggere un file di configurazione dalla navigazione è metterlo al di fuori della directory pubblica. Proteggerlo tramite .htaccess potrebbe essere ingannevole, se qualcosa fallisce il tuo file diventerà disponibile pubblicamente.

4

Questa non è una vulnerabilità, e non è nemmeno lontanamente un problema se qualcuno installa correttamente Laravel - il webroot è la cartella public, non il repository/root del progetto.

I file di configurazione e il file .env in laravel non sono contenuti nel webroot, pertanto è necessario assicurarsi che la propria webroot sia path/to/project/public.

La query di google che hai fornito è letteralmente solo un gruppo di persone che non ha letto la documentazione prima di installare Laravel.

0

Vorrei sottolineare che la soluzione è utile solo per proteggere il file .env effettivo. Quando si abilita la modalità di debug, mentre si utilizza il gestore di Whoops (e anche altri gestori di errori), le variabili di ambiente verranno mostrate al visitatore anche quando si verifica un errore (può anche essere un 404).

Per riassumere ciò che altri hanno detto in questo thread. Un file .env è un problema di sicurezza se:

  • Hai installato laravel all'interno della directory disponibile pubblicamente, questo può essere pubblico, www o public_html per esempio. Assicurati che la cartella pubblica, contenuta nell'installazione di laravel, sia l'unica cartella resa pubblica attraverso il webserver. In alternativa puoi proteggere il file .env usando .htaccess; ma questa non è una soluzione reale.
  • Hai attivato la modalità di debug e il gestore degli errori mostra una modalità di debug con tutte le variabili di ambiente. Disabilita la modalità di debug o configurala in modo che sia abilitata solo per utenti o ips specifici. Ciò impedisce la condivisione delle variabili d'ambiente sulle pagine di debug.
Problemi correlati