Bonjour,

Dans un script je récupère une variable qui est un nom de fichier présent sur le serveur dans un répertoire spécifique.
http://monsite/import.php?file=xxxxxx

Pour des question de sécurité, je souhaite interdire le visiteur de mettre comme nom de fichier: ../../toto.txt

Je veux donc la tester afin afin de savoir si la chaine contient la chaine "..", mais cela ne fonctionne pas.

voici le code php:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
    $f=$_GET['file'];
    $logfile=escapeshellcmd($f);
 
    if( strpos($logfile,'..') )
    {
      echo "le nom de fichier indiqué est interdit.";
    }
 
    if( strpos($logfile,' ') )
    {
      $logfile=str_replace(' ','_',$logfile);
    }
    ...
si dans la commande strpos, je remplace '..' par des lettres (tot), cela fonctionne...