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 :

[Sécurité] Système de consultation de fichier


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de knoxville
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 61
    Points
    61
    Par défaut [Sécurité] Système de consultation de fichier
    Bonjour à tous,
    Pour mon site internet je developpe un petit systeme de gestion de fichiers.
    Dans ce système, certains utilisateurs (qui se loggent au prealable) peuvent telecharger le contenu que de certains dossiers. Or en l'etat actuel si une personne lambda tape l'url à la main elle a accès au fichier.
    Je pensais pouvoir proteger le dossier avec un htaccess mais l'utilisateur doit alors se logger une deuxieme fois ce qui est penible. Comment puis-je remedier à ceci afin que l'utilisateur ne se logge qu'une seul fois ?
    Je précise que l'utilisateur est stocké dans une base de donnée (ainsi que son mot de passe) et que il se logge par l'intermediaire d'une session php.

    Merci d'avance de vos réponses... Une fois que j'aurais résolu ce problème j'aurais fini mon projet

  2. #2
    Membre averti Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Points : 301
    Points
    301
    Par défaut
    Citation Envoyé par knoxville
    Bonjour à tous,
    Pour mon site internet je developpe un petit systeme de gestion de fichiers.
    Dans ce système, certains utilisateurs (qui se loggent au prealable) peuvent telecharger le contenu que de certains dossiers. Or en l'etat actuel si une personne lambda tape l'url à la main elle a accès au fichier.
    Je pensais pouvoir proteger le dossier avec un htaccess mais l'utilisateur doit alors se logger une deuxieme fois ce qui est penible. Comment puis-je remedier à ceci afin que l'utilisateur ne se logge qu'une seul fois ?
    Je précise que l'utilisateur est stocké dans une base de donnée (ainsi que son mot de passe) et que il se logge par l'intermediaire d'une session php.

    Merci d'avance de vos réponses... Une fois que j'aurais résolu ce problème j'aurais fini mon projet
    tu affiches le lien seulement si la variable de session existe (autrement dit seulement si l'utilisateur est logué)

  3. #3
    Membre du Club Avatar de knoxville
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par max44410
    tu affiches le lien seulement si la variable de session existe (autrement dit seulement si l'utilisateur est logué)
    Non je ne peus pas proceder ainsi, en faite chacun des utilisateurs a son dossier et les autres utilisateurs loggé ne doivent pas pouvoir avoir accès aux dossiers des autres par l'url.

    De plus dans la solution que tu me proposes ils doivent quand même se logger une deuxieme fois !

  4. #4
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Il faut que tu créé un fichier htaccess qui interdise l'accès à tous le contenu du dossier, sauf un fichier download.php
    Dans celui-ci, tu verifie la session utilisateur et tu fait un readfile du fichier que tu dois afficher.

  5. #5
    Membre du Club Avatar de knoxville
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par haltabush
    Il faut que tu créé un fichier htaccess qui interdise l'accès à tous le contenu du dossier, sauf un fichier download.php
    Dans celui-ci, tu verifie la session utilisateur et tu fait un readfile du fichier que tu dois afficher.
    Merci bien pour ta réponse ! Je vais tester ça !!!
    ps: avec le readfile je peux downloader ??

  6. #6
    Membre averti Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Points : 301
    Points
    301
    Par défaut
    Citation Envoyé par knoxville
    Non je ne peus pas proceder ainsi, en faite chacun des utilisateurs a son dossier et les autres utilisateurs loggé ne doivent pas pouvoir avoir accès aux dossiers des autres par l'url.

    De plus dans la solution que tu me proposes ils doivent quand même se logger une deuxieme fois !
    je pense que tu peux le faire...
    je suppose que tu as stocké dans ta bdd le nom des repertoires de chaque utilisateur, non ??

    dans ce cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_SESSION['logged']))
    {
    echo "<a href=\"./".$_SESSION['rep_uti']."/\">lien vers repertoire</a>";
    }

  7. #7
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    @Max : Non, ce qu'il veut, ce n'est pas seulement cacher les liens mais empecher l'utilisateur d'arriver sur le fichier en tapant directement l'url dans sa barre d'adresse. Il faut un truc un peu plus robuste

  8. #8
    Membre averti Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Points : 301
    Points
    301
    Par défaut
    Citation Envoyé par haltabush
    @Max : Non, ce qu'il veut, ce n'est pas seulement cacher les liens mais empecher l'utilisateur d'arriver sur le fichier en tapant directement l'url dans sa barre d'adresse. Il faut un truc un peu plus robuste

    Oki,

    il me semble qu'il existe des fonction PHP pour ouvrir des dossiers proteger par htaccess, c'est un peu plus presentable que la popup qui s'ouvre pour l'authentification ...

    PHPhtaccess free

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

Discussions similaires

  1. [Système] PHP5 : exécuter un fichier .exe
    Par koueletbak dans le forum Langage
    Réponses: 5
    Dernier message: 02/05/2006, 09h55
  2. [système] Ralentissement ouverture de fichiers
    Par shukin dans le forum Windows XP
    Réponses: 13
    Dernier message: 19/04/2006, 14h20
  3. [Sécurité] Proteger un téléchargement de fichier
    Par Oberown dans le forum Langage
    Réponses: 7
    Dernier message: 16/02/2006, 13h16
  4. Système de gestion de fichier
    Par xtremax3 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 02/11/2005, 02h05
  5. [Système] Comment copier un fichier dans le presse papier ?
    Par le y@m's dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 19/09/2005, 12h03

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