shenron76 Posté 9 Février 2011 Posté 9 Février 2011 (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é 9 Février 2011 par shenron76
Dan Posté 9 Février 2011 Posté 9 Février 2011 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 :!:
shenron76 Posté 9 Février 2011 Auteur Posté 9 Février 2011 (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é 9 Février 2011 par shenron76
Dan Posté 9 Février 2011 Posté 9 Février 2011 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(); >
shenron76 Posté 10 Février 2011 Auteur Posté 10 Février 2011 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...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant