IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Exploration de répertoire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut Exploration de répertoire
    Bonjour à tous ,
    j'ai fait un explorateur de fichier et je souhaites le chrooter, c'est à dire empecher les utilisateur de remonter au dela du dossier original.

    Les scripts de listing , recevant des chemins , il n'est pas impossible qu'un utilisateur un peu débrouillard puisse remonter l'arboresence en injectant un "../"
    Pour contrer le problème je fait systématiquement un str replace sur ce que je reçois pour supprimer les : .. , ../, ..%2F

    Voyez vous d'autres options possible pour remonter l'aboresence ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par grunk Voir le message
    Bonjour à tous ,
    j'ai fait un explorateur de fichier et je souhaites le chrooter, c'est à dire empecher les utilisateur de remonter au dela du dossier original.

    Les scripts de listing , recevant des chemins , il n'est pas impossible qu'un utilisateur un peu débrouillard puisse remonter l'arboresence en injectant un "../"
    Pour contrer le problème je fait systématiquement un str replace sur ce que je reçois pour supprimer les : .. , ../, ..%2F

    Voyez vous d'autres options possible pour remonter l'aboresence ?
    Surement oui, mais tu peux donner ton source, et si tu as, un exemple en ligne

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Pas d'exemple en ligne (intranet) mais voici un extrait de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    $racine = $configIni->root.'documents/';
     
    $file 	= htmlspecialchars($_GET['f']);
     
    $a 		= array('..','../','..','..%2F',);
     
    $b 		= array('','','','');
     
    $file 	= str_replace($a,$b,$file);
     
    $file   = htmlspecialchars($file);
     
    if(isset($_GET['f']))
     
    	$racine = $configIni->root.'documents'.urldecode($file);
     
     
     
    try{
     
    $explorer = new File_FolderManager(utf8_decode($racine));
     
    //$explorer->setFilter('avi|wmv|pdf');
     
    $fichiers = $explorer->listFile();
     
    $dossiers = $explorer->liste();
     
    }
     
    catch(Util_ExceptionHandler $e){
     
    	echo $e->getError();
     
    }
    La méthode listFile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    public function listFile()
     
    {
     
    	$folder = new DirectoryIterator($this->dossier);
     
    	$compteur =  0;
     
    	foreach($folder as $file)
     
    	{
     
    		if(!$file->isDot() && !$file->isDir() && $this->filter($file->getFilename()))
     
    		{
     
    			$this->listeFichier[$compteur]['name'] = $file->getFilename();
     
    			$this->listeFichier[$compteur]['size'] = round($file->getSize()/1024,2);
     
    			$this->listeFichier[$compteur]['type'] = File_Util::getExtension($this->listeFichier[$compteur]['name']);
     
    			$this->listeFichier[$compteur]['date'] = $file->getMTime();
     
    			$compteur++;
     
    		}
     
    	}
     
    	sort($this->listeFichier);
     
    	return $this->listeFichier;
     
    }
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Scripts pour exploration de répertoire
    Par christophe31 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 16/03/2008, 00h07
  2. Réponses: 3
    Dernier message: 10/09/2007, 10h42
  3. [Répertoire] Explorer un dossier sur le serveur
    Par gotcha5832 dans le forum Langage
    Réponses: 4
    Dernier message: 08/01/2007, 16h11
  4. script qui explore les sous-répertoire ?
    Par farenheit dans le forum Flash
    Réponses: 9
    Dernier message: 20/07/2005, 12h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo