5.1.2.4 Cas 3: Utilisation du "doc_root" ou du "user_dir"
Ajouter un contenu interactif dans votre serveur web, comme des scripts
ou des exécutables, est souvent considéré comme une
pratique non-sécurisée. Si, par erreur, le script n'est pas
exécuté mais affiché comme une page HTML classique,
il peut en résulter un vol de propriété intellectuelle
ou des problèmes de sécurité à propos des mots
de passe notamment. Donc, la majorité des 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 du PHP, et donc, tous les fichiers de ce répertoire
seront interprétés et non affichés tels quels.
Aussi, si vous ne pouvez pas utiliser la méthode
présentée ci-dessus, il est nécessaire de mettre
en place un répertoire "doc_root" différent de votre
répertoire "document root" de votre serveur web.
Vous pouvez utiliser la directive doc_root
dans le fichier de configuration ,
ou vous pouvez affecter la variable d'environnement
PHP_DOCUMENT_ROOT
. Si cette variable d'environnement
est affectée, le binaire
CGI
du PHP construira
toujours le nom de fichier à ouvrir avec
doc_root
et le "path information" de la requête, et donc vous serez sûr
qu'aucun script n'est 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 la directive n'est pas
activé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 correspond
pas à l'ouverture d'un fichier sous le répertoire racine de
l'utilisateur mais à l'ouverture du fichier
~user/doc.php
sous le repertoire
"doc_root" (oui, un répertoire commence par un tilde
[
~
]).
Si la directive "user_dir" est activée à la valeur
public_php
par exemple, une requête
du type
http://my.host/~user/doc.php
ouvrira un fichier appelé
doc.php
sous le
répertoire appelé
public_php
sous le répertoire racine de l'utilisateur.
Si le répertoire racine des utilisateurs 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 donc vous pouvez
contrôler l'accès au répertoire "document root"
séparément des répertoires "user directory".
|