Bonjour ...
j'ai récement tombé sur un forum qui expliquer comment construire un code de téléchargement des fichiers avec Php ( rien de nouveau jusqu'ici ) mais une personne a attiré mon intention et surtout ma curiosité en invocant une possible faille dans le code pour ceux qui s'y connaissent pas vraiment en Php.
Voici son message :
Fais attention, si tu passes la variable du nom de fichier à télécharger, ça pourrait permettre de télécharger presque n'importe quel fichier sur ton site ou même sur le serveur. Sinon, filename=$fichier enverra le chemin complet du fichier comme si c'était son nom. Il suffit de mettre filename=".basename($fichier)); pour que seul le nom du fichier soit envoyé, sans le reste du chemin.
le code qui a été donné est le suivant :
ma question est plutôt simple ... je ne comprends pas sa mise en garde conte cette faille puisque je n'ai pas compris où elle se trouvé réellement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $fichier = "dossier/tonfichier.ext"; header("Content-disposition: attachment; filename=$fichier"); header("Content-Type: application/force-download"); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize($fichier)); header("Pragma: no-cache"); header("Expires: 0"); readfile($fichier);
donc, c'est quoi réellement la faille dont il parle ? et comment l'éviter ?
Merci pour vos réponses ...
Cordialement ...
Partager