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 :

[Système] Proteger des fichiers en telechargement ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 78
    Par défaut [Système] Proteger des fichiers en telechargement ?
    Bonjour à tous,

    Je vous explique. J'ai dév un site en PHP qui permet de télécharger des fichiers. L'utilisateur doit s'identifier sur la page d'accueil avec login et mdp. (avec login et mdp dans une base mysql)
    Une fois identifié il à acces à des fichiers présent dans un dossier qu'on peut appeler 'download'.

    Le problème c'est que si un utilisateur tape : http://monsite/download/fichier1.doc

    il aura accès à ce fichier..

    j'ai vu qu'avec .htaccess on peut restreindre l'access mais du coup mon utilisateur doit à nouveau s'identifier non ?
    J'aimerai que l'utilisateur s'identifie qu'au debut et pas en .htaccess

    Si quelqu'un comprend mon probleme et connait une solution ?

    Merci

  2. #2
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    Tu met tes fichiers dans un répertoire protégé par .htaccess deny from all et puis à partir d'une page si l'internaute est connecté tu lui fais télécharger le fichier en forçant le téléchargement via les header et en affichant le contenu du fichier... .. .

    @ tchaOo°

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 78
    Par défaut
    Merci de ta réponse,

    je dois mettre ce code dans une nouvelle page ? et lorsqu'elle va s'ouvrir le telechargement sera proposé ?

  4. #4
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    Nouvelle page ou non la seule contrainte (hormis que tu ais vérifié que l'internaute est identifié) est qu'il faut afficher aucune autre données que celle du fichier à télécharger... sinon ce dernier sera corompu (logique)... .. .

    @ tchaOo°

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 78
    Par défaut
    J'essaye de forcer le téléchargement d'un fichier avec le code de la FAQ (qui a été mis à jour en passant)

    http://php.developpez.com/faq/?page=..._forcedownload

    J'obtient une erreur (quand j'enleve le 'true' passé en paramètre je n'ai plus l'erreur) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Wrong parameter count for md5()
    J'ai remi le code tel quel dans une page download.php, au même niveau j'ai un fichier test.zip

    j'ai juste modifié la 1ere ligne de code pour dire quel fichier télécharger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define('CFG_SYSTEM_FILENAME', test.zip');
    mais rien en se passe aucune fichier à télécharger m'est proposé.. ?
    J'ai fait une erreur ?

  6. #6
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    C'est normal tu dois être sous php4 la fonction md5 n'integre le second argument qu'avec php5... soit dit en passant c'est pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    define('CFG_FILE_MD5', md5(CFG_SYSTEM_FILENAME, TRUE));
     
     
    header('Content-MD5: '.base64_encode(CFG_FILE_MD5));
    qu'il faut faire mais...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header('Content-MD5: '.base64_encode(md5_file(CFG_SYSTEM_FILENAME)));
    et il faut remplacer...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    define('CFG_FILESIZE', CFG_SYSTEM_FILENAME);
     
    header('Content-Length: '.CFG_FILESIZE);
    par...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header('Content-Length: '.filesize(CFG_SYSTEM_FILENAME));
    Perso je trouve que la moitié des constantes qui sont définies sont inutiles... genre celle pour le md5 autant la virer et faire l'appel à la fonction md5(_file) directement au moment de la définition du header... mais bon c'est un avis perso... .. .

    Il serait bien aussi de faire une fonction pour récupérer le mime type par rapport à l'extension du fichier parce que utiliser tout le temps application/octetstream c'est bien mais c'est pas pratique... .. .

    @ tchaOo°

Discussions similaires

  1. Proteger un fichier du telechargement ?
    Par ipingu dans le forum Sécurité
    Réponses: 2
    Dernier message: 21/05/2012, 07h51
  2. [Système] Organisation des fichiers
    Par Prosis dans le forum Langage
    Réponses: 12
    Dernier message: 10/02/2008, 23h30
  3. [Système] gestion des fichiers et base de données
    Par noobspower dans le forum Langage
    Réponses: 3
    Dernier message: 26/02/2007, 10h42
  4. interdire de tuer un processus & proteger des fichiers
    Par .:dev:. dans le forum Windows
    Réponses: 2
    Dernier message: 30/06/2006, 11h33
  5. [système]suppression des fichiers
    Par gilleski2010 dans le forum Sécurité
    Réponses: 2
    Dernier message: 05/02/2006, 14h02

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