comment empêcher php de remonter l'arborescence?

Questions sur le développement PHP.

Modérateur : Modérateurs

gagou9
Nouveau membre
Messages : 5
Inscription : jeu. 25 sept. 2008, 15:12

comment empêcher php de remonter l'arborescence?

Messagepar gagou9 » jeu. 25 sept. 2008, 15:23

bonjour!!

ben voilà je sais pas si c'est très clair, mais le principe est :

j'ai un site stocké sur un serveur dans le dossier (/public_html/dossier/) qui peut être accédé dans un navigateur en tapant 'monsite.fr/site1/'

j'aimerais que php (et autres langages of course!) ne puissent pas remonter l'arborescence (grâce à opendir() par exemple...) au dela du dossier /public_html/dossier/

pourquoi faire ?
parce que ce dossier est lié à un compte FTP que je prête à quelqu'un, et que si ce quelqu'un se fait pirater son compte, il serai facile grâce à php d'aller supprimer tous les fichiers/repertoires parents, donc tous les sites de mon serveur..!

merci de votre aide!!

Avatar de l’utilisateur
dexmon
Gourou
Gourou
Messages : 793
Inscription : sam. 18 juin 2005, 9:55
Localisation : /usr/local/apache
Contact :

Re: comment empêcher php de remonter l'arborescence?

Messagepar dexmon » jeu. 25 sept. 2008, 19:07

Bonjour,
essai un chmod 711 sur dossier.
ça permettra de ne pas lire mais s'il connait l'arborescence par coeur il pourra récupérer les données.

Sinon une autre méthode serait d'utiliser la directive du php.ini open_basedir et de lui indiquer dans quel dossier php est autorisé à travailler, c'est une sorte de prison (chroot) pour php.

S'il n'y a qu'un seul site hébergé c simple à mettre en place (php.ini) mais s'il y a plusieurs site héberger alors il te faudra configurer le vhost de chaque site avec la valeur

Code : Tout sélectionner

php_admin_value open_basedir "/public_html/dossier"



Exemple pour plusieurs dossiers:

Code : Tout sélectionner

php_admin_value open_basedir /home/www/toto:/tmp:/usr/local/bin:/usr/bin:/bin:/usr/local/php/include

Les deux points délimite l'arborescence.
ImageUNIX foreverImage
Avant toute demande de support, vérifiez votre fichier error.log Apache.
----------------------------------------

gagou9
Nouveau membre
Messages : 5
Inscription : jeu. 25 sept. 2008, 15:12

Re: comment empêcher php de remonter l'arborescence?

Messagepar gagou9 » jeu. 25 sept. 2008, 20:19

ah oké!

et puis-je faire ça dans un htaccess ?

genre

Code : Tout sélectionner

<directory /home/durab/public_html/site1/>
php_admin_value open_basedir /home/domaine.fr/public_html/site1/
</directory>


j'ai testé ça, exactement comme ça, et ça a pas marché (erreur 500) mais j'avais php_admin_value à la place de php_value, du coup c'est quoi les différences?!

merci à toi en tout cas!

au fait, tu dois te poser la question de pourquoi je veux le faire en htaccess, ben c'est simple, je suis en hebergeur mutualisé, donc pas d'accès au httpd.conf !


ciao!

Avatar de l’utilisateur
dexmon
Gourou
Gourou
Messages : 793
Inscription : sam. 18 juin 2005, 9:55
Localisation : /usr/local/apache
Contact :

Re: comment empêcher php de remonter l'arborescence?

Messagepar dexmon » sam. 27 sept. 2008, 8:15

puis-je faire ça dans un htaccess


Non, seulement au niveau du virtualhost
php_admin_value -----> virtualhost
php_value -----> htaccess
ImageUNIX foreverImage
Avant toute demande de support, vérifiez votre fichier error.log Apache.
----------------------------------------


Revenir vers « PHP »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités