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

Apache Discussion :

Contourner identification .htaccess en php


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Par défaut Contourner identification .htaccess en php
    Bonjour,

    En référence à la discussion suivante : http://www.developpez.net/forums/sho...d.php?t=346169

    Voila je n'ai pas tout saisi à la réponse précédente, et je vous savoir si une solution existait alors pour résoudre ce problème et contourner la sécurité d'un fichier htaccess sans utiliser la boite de dialogue du navigateur.

    D'avance merci

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Bonjour et bienvenu sur DVP,

    Concrètement, il existe 2 méthodes (plus en fait, mais dans notre cas il n'y en a que 2) pour s'authentifier : utiliser la méthode HTTP basique et la pop-up du navigateur, ou utiliser une méthode "perso" avec formulaire Web. Dans les 2 cas, les mécanismes sous-jacents sont totalement différents. Dans le premier cas, l'authentification se fait sur un en-tête HTTP spécial envoyé par le navigateur systématiquement qu'il fait une requête sur une certaine URL ou sous-URL. Dans le second cas, le navigateur n'est pas spécialement au courant qu'il y a eu une authentification : à un moment donné, l'utilisateur a rempli et soumis un formulaire, et en retour, le navigateur a reçu un cookie qui va renvoyer systématiquement au serveur. Le cookie, le navigateur ne sait pas à quoi il sert ni ce qu'il contient. C'est le serveur qui attribue un certain "sens" à ce cookie comme par exemple servir à retrouver une session.

    Pour résumer, donc :
    • Authentification HTTP basique : avec pop-up
    • Authentification "perso" HTML : sans pop-up

    Maintenant, quel est ton besoin exact ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Par défaut
    Bonjour et d'abord merci pour la réponse.

    Concrètement, je souhaite créer un dossier de documents personnel (pdf, image, ... ) sur un site web et filtrer l'accès à ce dossier en utilisant une authentification via un formulaire PHP/HTML.
    L'utilisateur, une fois connecté et authentifié ne peux que voir les documents de son répertoire personnel, et pas les répertoires des autres users.

    Je sais que l'inverse est possible, une identification dans la popup (via .htpasswd ou php avec "Header("WWW-Authenticate: Basic realm=\"My Realm\"");") et la récupération des identifiants en php.
    Dans ce cas précis, cela ce passe comme vous le disiez avec une en-tête HTTP spécial que le navigateur envoi pour être identifié sur le .htaccess.

    Mais je souhaiterai éviter l'identification par la fenêtre popup et avoir le même résultat.
    Donc c'est savoir si il est possible de dire au serveur que l'accès au dossier est autorisé pour l'utilisateur en cours.
    Je suis preneur aussi d'une méthode en cgi ou en perl si cela n'est pas possible en php directement.

    Pour l'instant la seul méthode que j'ai réussi à mettre en place pour limiter l'accès à ce dossier c'est une réécriture d'url dans le cas ou le nom de fichier n'est pas donné avec l'orthographe exact, mais je pense que cette méthode a ces limites.

    Je sais pas si je me suis bien expliqué , mais d'avance merci

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Citation Envoyé par rols35 Voir le message
    Donc c'est savoir si il est possible de dire au serveur que l'accès au dossier est autorisé pour l'utilisateur en cours.
    Je suis preneur aussi d'une méthode en cgi ou en perl si cela n'est pas possible en php directement.
    Non, quelque soit le langage, ce n'est pas possible : le pb n'est pas le langage mais le serveur Web. Je vois 2 méthodes possibles mais dans les 2 cas, il faut passer par une "façade" Web (écrite en PHP ou tout autre langage avancé mais pour simplifier, on va dire PHP) :
    • Bloquer le répertoire de chaque utilisateur par une authentification HTTP basique. Pour cette authentification, on peut imaginer n'importe quel mot de passe, éventuellement celui de l'utilisateur pour l'authentification Web, mais dans ce cas il faut prévoir une synchronisation. Bref, l'idée c'est que les répertoires sont protégés en accès direct. L'utilisateur accède au site et s'authentifie. Lorsqu'il veut accéder à son répertoire, il passe en fait par une page PHP. Cette page PHP se connecte pour l'utilisateur en authentification HTTP basique sur le serveur Web et récupère la liste des documents. Elle renvoie alors cette liste mais avec des URL travaillées : ces URL travaillées sont des URL pointant sur une autre page PHP dont le seul travail est de se connecte pour l'utilisateur en authentification HTTP basique sur le serveur Web, de télécharger le fichier demandé et de le renvoyer à l'utilisateur. Cette solution n'est pas la plus simple et surtout, ce n'est pas gagné pour le script PHP de pouvoir se connecter en authentification basique sur son propre serveur : un post récent sur le forum faisait état justement de ce genre de difficulté. En revanche, l'intérêt c'est que si les mots de passe sont synchronisés, l'utilisateur peut quand même avoir accès à ses documents par authentification HTTP basique.
    • Variante : aucune répertoire perso n'est accessible directement grâce à un superbe Deny from all. On retrouve le même principe de page PHP qui affiche la liste des documents et une autre page PHP pour lire les fichiers et les renvoyer, mais là, au lieu que les pages repassent par le serveur Web pour faire une authentification HTTP basique, elles lisent directement les fichiers présents sur le serveur. Pour savoir ou regarder les fichiers, c'est facile : l'utilisateur est authentifié donc tu as forcément une variable de session qui t'indique le répertoire en question. C'est beaucoup plus simple et plus direct à faire que la première solution.


    Citation Envoyé par rols35 Voir le message
    Pour l'instant la seul méthode que j'ai réussi à mettre en place pour limiter l'accès à ce dossier c'est une réécriture d'url dans le cas ou le nom de fichier n'est pas donné avec l'orthographe exact, mais je pense que cette méthode a ces limites.
    C'est surtout qu'elle est indépendante d'une éventuelle authentification. Mais à croiser avec les 2 solutions que je suggère.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Par défaut
    Merci pour ta réponse et je vais me pencher la dessus.

    Si je parviens à mes fins je vous ferais savoir par quelle méthode j'y suis arrivé.

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

Discussions similaires

  1. Contourner htaccess avec php
    Par ROUSA1 dans le forum Apache
    Réponses: 1
    Dernier message: 07/10/2010, 12h40
  2. Créer un fichier .htaccess en PHP
    Par magnum812 dans le forum Langage
    Réponses: 1
    Dernier message: 30/07/2008, 18h27
  3. htaccess 404 php
    Par yankey dans le forum Apache
    Réponses: 3
    Dernier message: 27/06/2007, 14h55
  4. Sessions Apache, htaccess et PHP.
    Par Invité dans le forum Apache
    Réponses: 2
    Dernier message: 31/05/2007, 10h27
  5. Probleme d'identification avec sessions PHP
    Par bontbont dans le forum Langage
    Réponses: 5
    Dernier message: 09/12/2005, 19h15

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