Je travaille avec l'administration des systèmes dans une université et je viens de tomber sur quelque chose qui est probablement commun, mais qui m'a beaucoup choqué.
Tous les répertoires public_html et les zones web sont stockés sur afs, avec des permissions de lecture pour les serveurs web. Puisque les utilisateurs sont autorisés à avoir des scripts php dans leur public_html, cela signifie qu'ils peuvent accéder aux fichiers des autres à partir de php (et des fichiers web principaux !).
Non seulement cela rend toute protection par mot de passe .htaccess complètement inutile, mais cela permet également aux utilisateurs de lire les fichiers source php contenant les mots de passe des bases de données mysql et d'autres informations sensibles similaires. S'ils constatent que d'autres personnes disposent de répertoires dans lesquels les serveurs web ont un accès en écriture (par exemple, pour les journaux personnels ou pour enregistrer les données des formulaires soumis), ils peuvent stocker des fichiers dans ces comptes.
Un exemple simple :
<?
header("Content-type: text/plain");
print file_get_contents("/afs/example.com/home/smith/public_html/.htpasswd");
?>
S'agit-il d'un problème courant ? Et comment le résolvez-vous généralement ?
UPDATE :
Merci pour votre contribution. Malheureusement, il semble qu'il n'y ait pas de réponse simple. Dans un grand environnement partagé comme celui-ci, les utilisateurs ne devraient probablement pas avoir autant de choix. La meilleure approche à laquelle je puisse penser est de définir "open_basedir" dans la configuration principale pour tous les répertoires "public_html", de lancer suphp et de n'autoriser que du php propre (pas de cgi scripts, d'exécution de commandes externes avec des backticks, etc).
Changer la politique de cette manière briserait beaucoup de choses, et pourrait bien inciter les utilisateurs à prendre leurs fourches et à nous poursuivre... J'en discuterai avec mes collègues et je ferai le point ici si nous prenons une décision sur la manière de modifier la configuration.