Aller au contenu

Securise l'acces a un fichier


destroyedlolo

Sujets conseillés

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

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é par NorSeb
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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