Cas 3 : Utilisation du "doc_root" ou du "user_dir"

Ajouter un contenu interactif, comme des scripts ou des exécutables, dans les répertoires de documents du serveur web, est parfois considéré comme une pratique non-sécurisée. Si, à cause d'une erreur de configuration, le script n'est pas exécuté mais affiché comme une page HTML classique, il peut en résulter une fuite de propriété intellectuelle ou d'informations liées à la sécurité, comme, typiquement, des mots de passe. En conséquence, un bon nombre d'administrateurs préfÚrent mettre en place un répertoire spécial pour les scripts, qui soit uniquement accessible par le biais du binaire CGI de PHP, ce qui signifie que tous les fichiers de ce répertoire seront interprétés et jamais affichés tels quels.

De plus, s'il n'est pas possible d'utiliser la mĂ©thode qui permet de s'assurer que les requĂȘtes ne sont pas redirigĂ©es, comme prĂ©sentĂ©e ci-dessus, il est nĂ©cessaire de mettre en place un rĂ©pertoire de scripts "doc_root" diffĂ©rent du rĂ©pertoire "document root" du serveur web.

Pour indiquer la racine des scripts PHP, il est possible d'utiliser la directive doc_root dans le fichier de configuration, ou il est possible d'affecter la variable d'environnement PHP_DOCUMENT_ROOT. Si cette information est renseignĂ©e, le binaire CGI de PHP construira toujours le nom de fichier Ă  ouvrir avec doc_root et le "path information" de la requĂȘte, ce qui garantit qu'aucun script ne sera exĂ©cutĂ© en dehors du rĂ©pertoire prĂ©dĂ©fini (Ă  l'exception du rĂ©pertoire dĂ©signĂ© par la directive user_dir - voir ci-dessous).

Une autre option possible ici est la directive user_dir. Lorsque user_dir n'est pas spĂ©cifiĂ©e, seuls les fichiers contenus dans le rĂ©pertoire doc_root peuvent ĂȘtre ouverts. Ouvrir un fichier possĂ©dant l'url http://my.host/~user/doc.php ne correspondra pas Ă  l'ouverture d'un fichier sous le rĂ©pertoire racine de l'utilisateur, mais Ă  l'ouverture du fichier ~user/doc.php sous le rĂ©pertoire doc_root (oui, un nom de rĂ©pertoire commençant par un tilde [~]).

Si la directive user_dir est activĂ©e, par exemple Ă  la valeur public_php, une requĂȘte du type http://my.host/~user/doc.php ouvrira un fichier appelĂ© doc.php dans le rĂ©pertoire appelĂ© public_php sous le rĂ©pertoire racine de l'utilisateur. Si le rĂ©pertoire racine de l'utilisateur est /home/user, le fichier exĂ©cutĂ© sera /home/user/public_php/doc.php.

user_dir et doc_root sont deux directives totalement indépendantes, et il est donc possible de contrÎler l'accÚs au répertoire "document root" séparément des répertoires "user directory".

add a note

User Contributed Notes

There are no user contributed notes for this page.