Services webmasters
Partenaires
Jeux concours gratuits
 
Cas 2: Utilisation de la directive de compilation --enable-force-cgi-redirect
<<<
Cas 3: Utilisation du "doc_root" ou du "user_dir" Cas 4: L'exécutable PHP à l'extérieur de l'arborescence du serveur
>>>

5.1.2 Binaires CGI
5.1 Sécurité
5 Sécurité
 Manuel PHP

Faiblesses connues
Cas 1: Tous les fichiers sont publics
Cas 2: Utilisation de la directive de compilation --enable-force-cgi-redirect
->Cas 3: Utilisation du "doc_root" ou du "user_dir"
Cas 4: L'exécutable PHP à l'extérieur de l'arborescence du serveur

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".

<< Cas 3: Utilisation du "doc_root" ou du "user_dir" >>
Cas 2: Utilisation de la directive de compilation --enable-force-cgi-redirect Binaires CGI Cas 4: L'exécutable PHP à l'extérieur de l'arborescence du serveur
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -