IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Téléchargement : Une faille à éviter


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 34
    Par défaut Téléchargement : Une faille à éviter
    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 :

    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);
    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.

    donc, c'est quoi réellement la faille dont il parle ? et comment l'éviter ?

    Merci pour vos réponses ...
    Cordialement ...

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    L'avertissement concerne les gens qui passent le nom du fichier dans l'url ou en POST , a partir de ce moment la n'importe qui peut entrer le nom d'un fichier sur le serveur et le télécharger.

    Dans ton cas aucun soucis puisque tu stipule le fichier a télécharger juste avant.
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 34
    Par défaut
    Donc si je comprends bien si l'url est du gnere :

    http://www.lesite.com/telecharger.ph...on_fichier.ext

    alors là c'est une faille car n'importe quel utilisateur entrera le nom d'un fichier pourra le télécharger.

    ceci est en étant en mode "GET" ... mais je comprends pas lorsque vous dites en mode POST !!

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    en POST méme principe , l'utilisateur crée un formulaire qui pointe sur le fichier PHP a exécuter et entre un nom de fichier de son choix.
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  5. #5
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 34
    Par défaut
    oui, effectivement lol , c'est bête mais j'y ai pas refléchi ...

    donc la seul solution qui s'offre à nous c'est de créer une table et de sauvegarder toute les informations des fichiers à télécharger et de les appelé par leur ID pour qu'on est l'url du genre : http://www.lesite.com/telecharger.php?id=3214 qui fait référence au fichier avec l'id 3214 ... est-ce plus sécurisant ?

    Merci encore pour vos réponses

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu peux aussi purger le parametre recu en retirant les caracteres comme "/" "\" ".." etc.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 696
    Par défaut
    Citation Envoyé par nabmoah Voir le message
    donc la seul solution qui s'offre à nous c'est de créer une table et de sauvegarder toute les informations des fichiers à télécharger et de les appelé par leur ID pour qu'on est l'url du genre : http://www.lesite.com/telecharger.php?id=3214 qui fait référence au fichier avec l'id 3214 ... est-ce plus sécurisant ?
    oui c'est aussi une bonne méthode puisque ainsi seuls les fichiers indiqués dans la table sont téléchargables

Discussions similaires

  1. Réponses: 61
    Dernier message: 27/11/2009, 12h15
  2. Hébergement Gandi suite à une faille chez Celeonet ?
    Par pluxml dans le forum Autres hébergeurs
    Réponses: 11
    Dernier message: 30/06/2008, 15h59
  3. Formule VB pour heures de nuit ayant une faille
    Par super_newbie_pro dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/01/2008, 10h04
  4. Réponses: 4
    Dernier message: 13/04/2007, 14h19
  5. [Sécurité] Y à t'il une faille ?
    Par Nadd dans le forum Langage
    Réponses: 2
    Dernier message: 21/05/2006, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo