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:
si dans la commande strpos, je remplace '..' par des lettres (tot), cela fonctionne...
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); } ...
Partager