Salut,
Ce système peut être très dangereux si un vilain hacker vient à passer sur votre site.
S'il s'amuse taper une url trafiquée dans son navigateur, du style :
votresite.com/download.php?download=true&download_dir=./&download_file=index.php
il téléchargera tout tranquillement le fichier index.php
Et si ce fichier contient les paramètres d'accès mySQL par exemple, attention aux surprises.
Ou même si le fichier contenant les paramètres d'accès mySQL est stocké ailleurs et qu'il y a, par ex., un include ou require("connection_mysql/connect.php") dans ce fichier index.php, le plaisantin pourra s'amuser à taper
votresite.com/download.php?download=true&download_dir=connection_mysql/&download_file=connect.php
pour avoir accès à tout ce qui lui faut.
Je viens de tester et j'ai enregistré comme cela le fichier php sur mon disque dur...
Je conseillerais donc, si on connaît le type de fichier à télécharger, de plomber le truc avec une vérification de l'extension du fichier à télécharger, du genre :
if (substr($_GET["download_file"], -4) == ".jpg") {
// traitement
}
else {
echo "Type de fichier invalide";
}
ou même interdire toute extension ".php" dans la condition si on veut ratisser plus large et autoriser différents types de fichiers en téléchargement (jpg + gif + png + doc + pdf + xls... etc).
Merci de nous signaler si vous voyez d'autres failles de sécurité dans ce traitement.
Stéphane