Aller au contenu

Sujets conseillés

Posté (modifié)

Bonjour,

Je suis sur Kimsufi et je me pose une question relative à la sécurité. Lorsque je crée un domaine avec Webmin, ce domaine est ajouté dans /home sur le ftp.

Par exemple, je crée les domaines "test1" et "test2". J'ai donc /home/test1 et /home/test2 sur le ftp.

Par défaut, test1 et test2 sont en chmod 701.

Je fais un "include" sur la page index.php de test1 : include('./../test2/pages/parametres.php')

Avec le chmod 701 je n'ai pas la permission de faire l'include. Pour cela je dois passer le chmod de test2 à 711 (c'est à dire autoriser les groupe à exécuter). Cela pose-t-il un gros problème de sécurité sur mon serveur ?

Je pose cette question car je ne comprend pas trop les chmod et j'ai du mal à me rendre compte des conséquences.

Merci d'avance.

Modifié par shenron76
Posté

Es-tu certain que tu n'as pas l'OPEN_BASEDIR activé ?

De plus, le chemin ../../test2/pages/parametres.php ne pointe sur /home/test2 que si ton fichier qui fais l'include se trouve dans un sous répertoire de test1

Parce que test2/.. pointe vers /home et test2/../.. pointe vers la racine.

Mais si ton fichier index.php se trouve dans un sous-répertoire de /home/test1, c'est correct :!:

Posté (modifié)

Es-tu certain que tu n'as pas l'OPEN_BASEDIR activé ?

Qu'est-ce que l'OPEN_BASEDIR ?

De plus, le chemin ../../test2/pages/parametres.php ne pointe sur /home/test2 que si ton fichier qui fais l'include se trouve dans un sous répertoire de test1

Parce que test2/.. pointe vers /home et test2/../.. pointe vers la racine.

Mais si ton fichier index.php se trouve dans un sous-répertoire de /home/test1, c'est correct :!:

Oui effectivement, une faute de frappe de ma part, j'ai corrigé dans le post de départ... l'include: ./../test2/pages/parametres.php

Modifié par shenron76
Posté

OPEN_BASEDIR limite les fichiers accessibles par PHP dans l'arborescence.

Lorsqu'un script tente d'ouvrir un fichier, la situation du fichier du fichier sur le serveur est vérifiée. Si le fichier se situe hors du dossier spécifié dans la directive Open_Basedir, PHP refusera de l'ouvrir. Les liens symboliques sont résolus, ce qui fait que cette restriction ne peut être contournée par un lien symbolique.

Tu as quel message d'erreur qui s'affiche ?

<edit: pour savoir si open_basedir est activé, cherche dans la page affichée par un phpinfo(); >

Posté

D'après phpinfo(); : open_basedir / no value / no value

Il n'est donc pas activé.

Le message d'erreur était

Warning: include(./../test2/pages/parametres.php) [function.include]: failed to open stream: Permission denied in /home/test1/www/index.php on line 77

Warning: include() [function.include]: Failed opening './../test2/pages/parametres.php' for inclusion (include_path='.:/usr/share/php5') in /home/test1/www/index.php on line 77

Ligne 77: include('./../test2/pages/parametres.php');

En passant les permissions chmod de test2 à 711 (à la place de 701 par défaut) je n'ai plus d'erreur et l'include se fait correctement...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...