Lavoro con l'amministrazione dei sistemi in un'università e mi sono imbattuto in qualcosa che è probabilmente comune, ma è stato piuttosto scioccante per me.
Tutte le directory public_html e le aree web sono archiviate su afs, con permessi di lettura per i server web. Dato che agli utenti è permesso avere script php nel loro public_html, ciò significa che possono accedere ai file degli altri da php (e dai file web principali!).
Questo non solo rende completamente inutile qualsiasi protezione con password .htaccess, ma consente anche agli utenti di leggere file sorgente php contenenti password del database mysql e informazioni sensibili simili. O se scoprono che altre persone hanno directory in cui i server Web hanno accesso in scrittura (ad es. Per registri personali o per salvare i dati dei moduli inviati) possono archiviare i file in tali account.
Un semplice esempio:
<?
header("Content-type: text/plain");
print file_get_contents("/afs/example.com/home/smith/public_html/.htpasswd");
?>
È un problema comune? E come lo risolvi in genere?
AGGIORNARE:
Grazie per l'input. Sfortunatamente, sembra che non ci sia una risposta semplice. In un grande ambiente condiviso come questo, probabilmente agli utenti non dovrebbe essere data molta scelta. L'approccio migliore che mi viene in mente è di impostare "open_basedir" nella configurazione principale per tutte le directory "public_html", eseguire suphp e consentire solo php pulito (niente script cgi, comandi esterni con backtick ecc.).
Cambiare la politica in questo modo, però, romperebbe molte cose e probabilmente renderebbe gli utenti afferrare i loro forconi e inseguirci ... Ne discuterò con i miei colleghi e aggiornerò qui se prendiamo una decisione su come cambiare l'installazione.
open_basedirsoluzione di seguito sui sistemi di hosting condiviso di produzione, ma abbiamo diviso tutti nel proprio vhost - Non sono sicuro che funzioni per singole directory ...