Je ne suis pas un pro de la sécurité, mais la premère chose a savoir c'est qu'il ne faut jamais faire confiance aux données qui proviennent de l'utilisateur.
Les seules vérifications qui sont faites sont :
- Vérifier que le nom de fichier est bien renseigné
- Vérifier que le fichier existe
En fonction de l'architecture de tes dossiers, ca laisse la porte ouverte a pas mal d'abus, notement celui de télécharger autre chose que les images.
Je pense que la première chose a faire est de vérifier l'extension du fichier que l'utilisateur souhaite télécharger (pas de fichiers php par exemple).
Deuxieme chose, limiter l'argument file a un nom de fichier seul (pas de chemins relatifs ou absolus).
Je t'ai fait un exemple ici : http://pastebin.com/cJRefLLY
J'ai ajouté une fonction qui permet de valider le nom du fichier passé en argument.
edit: il y a une faute dans un des commentaires
//si l'extension du fichier n'est pas le tableau des extensions autorisés
qui devrait etre
//si l'extension du fichier n'est pas 'dans''' le tableau des extensions autorisés''
Message édité le 29 mai 2015 à 10:59:42 par Pseudo supprimé