Eu trabalho com a administração de sistemas em uma universidade e apenas me deparei com algo que provavelmente é comum, mas foi um choque para mim.
Todos os diretórios public_html e áreas da web são armazenados em afs, com permissões de leitura para os servidores da web. Como os usuários podem ter scripts php em public_html, isso significa que eles podem acessar os arquivos uns dos outros a partir do php (e os principais arquivos da web!).
Isso não apenas torna totalmente inútil a proteção por senha .htaccess, como também permite que os usuários leiam arquivos de origem php contendo senhas do banco de dados mysql e informações sensíveis semelhantes. Ou, se descobrirem que outras pessoas têm diretórios nos quais os servidores da Web têm acesso de gravação (por exemplo, para registros pessoais ou para salvar dados de formulários enviados), eles podem armazenar arquivos nessas contas.
Um exemplo simples:
<?
header("Content-type: text/plain");
print file_get_contents("/afs/example.com/home/smith/public_html/.htpasswd");
?>
Isso é um problema comum? E como você normalmente resolve isso?
ATUALIZAR:
Obrigado pela contribuição. Infelizmente, parece que não há uma resposta simples. Em um grande ambiente compartilhado como esse, provavelmente os usuários não devem ter tanta escolha. A melhor abordagem que posso pensar é definir "open_basedir" na configuração principal de todos os diretórios "public_html", executar o suphp e permitir apenas php limpo (sem scripts cgi, executando comandos externos com backticks etc.).
Mudar a política como essa quebraria muitas coisas e possivelmente faria com que os usuários pegassem seus forcados e nos perseguissem ... Vou discutir isso com meus colegas e atualizar aqui se tomarmos uma decisão sobre como alterar a configuração.
open_basedir
solução abaixo na produção compartilhada sistemas de hospedagem, mas nós dividir todo mundo em seu próprio vhost - Não tenho certeza se ele funciona para diretórios individuais ...