Perché settings.php è nella cartella web?


8

Nell'installazione predefinita, settings.php si trova in sites/default/. Non ci sono raccomandazioni nel sito Web ufficiale di Drupal sulla modifica della posizione di questo file. Non rappresenta un potenziale problema di sicurezza? Ho visto che i server web Apache alla fine non riuscivano a interpretare i file PHP e servivano il contenuto del file PHP in puro formato testo / testo, invece del presunto contenuto HTML. Ciò esporrebbe completamente l'utente e la password della connessione al database, che non è nemmeno crittografato. Perché funziona in questo modo?

Risposte:


6

Hai assolutamente ragione. So per certo che molti sviluppatori / amministratori di sistema non corrono il rischio che l'interprete PHP possa fallire ad un certo punto e includere la password db (e altri dati sensibili come le chiavi API) da un file esterno alla docroot del server web.

Sono sorpreso che questo non sia documentato come una buona pratica da nessuna parte - almeno non sono riuscito a trovarlo nemmeno su drupal.org. Non ho informazioni sul perché funzioni così.


6
Ricordo di aver visto una discussione tra i principali / famosi sviluppatori alcuni anni fa, in cui discutevano contro lo spostamento di dati sensibili dalla radice del web. Ricordo di essere stato piuttosto inorridito in quel momento. Se la memoria mi serve bene, penso che l'argomento fosse legato al fatto che Drupal avesse bisogno di lavorare fuori dagli schemi per l'hosting condiviso, e queste raccomandazioni renderebbero più difficile la realizzazione per le masse o qualcosa del genere. Vedrò se riesco a trovare quella discussione
Clive

1
Grazie @Clive. Non volevo aggiungere speculazioni alla mia risposta, ma come dici tu, il requisito di lavorare immediatamente su tutti i tipi di ambienti sembra il motivo più probabile per avere settings.php all'interno del docroot.
marcvangend,

Sì, @marcvangend, questo è quello che pensavo io stesso, ma in qualche modo potrebbe essere disponibile una procedura automatica durante l'installazione che verifica se ci sono le autorizzazioni di scrittura / proprietario appropriate a livello di server e, in tal caso, per fornire ulteriore sicurezza, in modo standardizzato e controllato (tramite metodologia di base).
Cesar,

0

Su alcuni provider questa stringa di connessione sensibile è archiviata all'esterno della radice web (ad esempio getpantheon.com) Puoi sempre creare alcuni collegamenti simbolici invece di archiviare direttamente nella cartella / sites / default.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.