Test si une chaine contient ".."
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:
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...