Finché le cose sono configurate correttamente sul server, i file PHP dovrebbero essere registrati come script e il server web dovrebbe averli interpretati da PHP quando richiesto e visualizzare solo i risultati di tale interpretazione.
Detto questo, qualsiasi numero di problemi può causare l'esposizione dei file. Alcuni di questi problemi possono anche esporre i dati indipendentemente dal fatto che siano in una cartella pubblica o meno. È sempre importante assicurarsi che il server sia configurato correttamente in modo da consentire solo le richieste necessarie. Ciò riduce l'area di superficie disponibile per l'attacco e aiuta a evitare possibili problemi relativi ai bug che potrebbero causare una violazione.
È una buona idea avere un file di configurazione in una cartella pubblica? Finché il server non è configurato per distribuire il file senza elaborarlo, probabilmente non è molto meno sicuro di qualsiasi altro punto del sistema. C'è una piccola possibilità che un bug nel server web venga usato per impedire l'esecuzione da parte del motore di scripting, ma più probabilmente gli attacchi sono attacchi che verrebbero da qualche altra direzione come SQL, FTP o qualche iniezione di codice in una cartella privata sarebbe ugualmente esposto.
Detto questo, il rovescio della domanda è perché non metterlo da qualche altra parte. L'opzione più sicura sarebbe quella di posizionare in un luogo in cui solo l'utente in cui viene eseguita l'istanza PHP del sito Web può accedere e negare l'accesso al file da qualsiasi altro meccanismo (come l'utente FTP o qualsiasi altro utente pubblico). tuttavia è piuttosto difficile da configurare e gestire, quindi è necessario prendere una decisione se la sicurezza aggiuntiva è necessaria o meno.
È un po 'scocciato su quale sia il migliore. È molto lavoro extra gestire tutti i percorsi, le autorizzazioni e gli utenti per mantenere quel livello di sicurezza. Il rovescio della medaglia, fintanto che il server viene mantenuto aggiornato e configurato correttamente, dovresti essere vulnerabile solo agli exploit zero day che attaccano a un livello molto basso e può essere sicuro contro praticamente tutti gli attacchi comuni, anche con il file di configurazione in la cartella pubblica.