destroyedlolo Posté 30 Mars 2006 Partager Posté 30 Mars 2006 Salut a tous, Je suis en train de faire un systeme de gestion de photo de mariage base uniquement sur des fichiers. Ca implique que mes scripts de gestions prennent en parametres le path vers ces fichiers. Comment faire pour s'assure que le fichier ouvert se trouve bien dans l'arborescance utilisee ? En clair : $ROOT=/var/site/toto/$FICHIER=$ROOT . $FICHIER_DEMANDE Ce que je veux, c'est massurer que $FICHIER donne bien un path qui se trouve dans l'arbo 'ROOT'. Si le visiteur rentre qq chose comme : truc/photo.jpg : ca passe car le fichier resultat est /var/site/toto/truc/photo.jpg truc/../../../../etc/passwd echoue car le fichier resultant est /etc/passwd et se trouve en dehors de ROOT Merci pour vos idees. Lolo Lien vers le commentaire Partager sur d’autres sites More sharing options...
Aksyon Posté 30 Mars 2006 Partager Posté 30 Mars 2006 (modifié) Salut Lolo Essaye un simple : $FICHIER_DEMANDE = real_path($FICHIER_DEMANDE);if (empty($FICHIER_DEMANDE) || !preg_match("^/$ROOT/i", $FICHIER_DEMANDE)) { trigger_error('Vous n\'avez rien à faire ici !', E_USER_ERROR);} ca devrait fonctionner. @++ <edit modérateur : Inutile de citer le message précédent en entier> Modifié 30 Mars 2006 par NorSeb Lien vers le commentaire Partager sur d’autres sites More sharing options...
destroyedlolo Posté 30 Mars 2006 Auteur Partager Posté 30 Mars 2006 (modifié) Ok, pile poile ce qu'il me fallait : Merci. (Le vrais nom de la fonction est realpath()). Modifié 30 Mars 2006 par destroyedlolo Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant