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 :

Protéger un sous répertoire et son contenu d'un accès direct


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Baldy
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 224
    Par défaut Protéger un sous répertoire et son contenu d'un accès direct
    Bonjour

    Ayant vu une faille sur un site je me suis empresser de la corriger. En effet le sous répertorie "upload" était accessible librement. Pour celui ci j'ai simplement corrigé le soucis en y mettant une page index.html avec une rediction automatique vers l'index de l'accueil du site. Mais les fichiers sont toujours accessibles si on connait leur nom.

    Sachant que le site est acessible uniquement via un login/mdp, comment devrais procéder si je veut empêcher l'accès à ces fichiers SAUF si on est loggé correctement?

    Merci

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    Tu peux faire ainsi:

    1) tu mets un .htaccess qui interdit l'accès http
    2) tu crée une page php hors de ce dossier qui permet de servir les fichiers.
    par exemple: download.php?file=nom_du_fichier et dans ton code tu vérifie
    la session et tu sers le fichier avec readfile par exemple. (ajoute les headers
    appropriés)
    3) (éventuellement) tu fais un url rewriting pour redonner des urls similaire à avant.
    dans le genre: /fichiers/toto.jpg => /download.php?file=toto.jpg

    dans download.php un peu de sécurité s'impose pour éviter de permettre à tes
    utilisateurs de télécharger des fichiers ailleurs que depuis le dossier voulu.

  3. #3
    Membre confirmé Avatar de Baldy
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 224
    Par défaut
    J'ai tenté l'idée du .htaccess mais evidemment ça bloque aussi l'accès aux fichiers (PDF dans le cas précis) quand on veut les consuklter via le site en étant correctement logué.

    Maintenant je ne suis pas sur d'avoir compris ton idée avec le fichier annexe

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Citation Envoyé par Baldy Voir le message
    Maintenant je ne suis pas sur d'avoir compris ton idée avec le fichier annexe
    C'est la clé du problème

    en bloquant complètement un répertoire avec un .htaccess tu empêche apache
    de servir son contenu.

    par contre tu peux aller lire les fichiers depuis php. Il y a plusieurs manières de
    faire, mais regarde déjà un peu la fonction readfile celle-ci
    permet de lire un fichier sur le disque et de l'envoyer au client.

    Regarde les exemples dans la doc, tu verra c'est pas sorcier

  5. #5
    Membre confirmé Avatar de Baldy
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 224
    Par défaut
    Dis moi si j'ai bien compris le principe.

    La fonction permet de mettre les infos du fichier concerné en mémoire et les retransmet ensuite au poste client?

  6. #6
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    oui c'est juste.

    sauf que le fichier n'est pas chargé dans son entier en mémoire avant d'être envoyé, cela se passe par paquets pour éviter d'utiliser trop de mémoire. (un flux avec un tampon) mais la manière exact du fonctionnement change rien à
    la solution :-)

    C'est assez similaire à ce qu'apache fait quand il sert un fichier en fait.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/03/2011, 15h56
  2. Réponses: 2
    Dernier message: 08/09/2007, 18h09
  3. Déplacer un répertoire et son contenu
    Par choubiroute dans le forum Langage
    Réponses: 6
    Dernier message: 28/04/2006, 12h59
  4. Réponses: 9
    Dernier message: 24/10/2005, 18h42
  5. Comment copier un répertoire et son contenu ?
    Par yoghisan dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 20/06/2004, 17h40

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