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 :

bloquer l'accès d'un répertoire mais permettre au player de lire le contenu


Sujet :

Apache

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 158
    Points : 38
    Points
    38
    Par défaut bloquer l'accès d'un répertoire mais permettre au player de lire le contenu
    Bonjour à tous et merci par avance pour l'aide que vous pourrez m'apporter.

    J'ai actuellement un Player Flash qui lit des vidéo .FLV depuis un répertoire /video/ sur mon serveur.

    Jusque la tout va bien, les vidéo sont bien lu aucun problème. Cependant je souhaiterais sécuriser ce répertoire afin que personne ne puisse y accéder directement via www.monsite.com/video/ .

    J'ai alors utilisé un fichier .htaccess et .htpasswrd. ça fonctionne bien seulement à cause (ou grâce) à cette technique mon Player ne peut plus lire les vidéos sans demander de login et mot de passe or cela doit être transparent pour les utilisateurs.

    Je sais qu'avec le fichier .htaccess, il est possible d'autoriser son site à accéder aux partie protégées mais je n'y suis pas arrivé.

    Voici mon fichier HTACCESS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <Limit GET POST>
    order deny,allow
    allow from all
    </Limit>
     
    AuthName "Dossier protégé"
    AuthType Basic
    AuthUserFile "/home/wly73/public_html/export/video/.htpasswd"
    Require valid-user

    Auriez-vous une idée pour permettre à mon Player Flash de lire les FLV depuis ce dossier sans avoir une demande de login et mot de passe ?

  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
    Points : 12 977
    Points
    12 977
    Par défaut
    Bonjour,

    Il n'y a pas vraiment de réponse magique. Le plus simple c'est de vérifier le referer mais ce n'est pas fiable car certains navigateurs ou proxies bloquent l'en-tête. Voir ces discussions :
    http://www.developpez.net/forums/d58...ction-fichier/
    http://www.developpez.net/forums/d50...t-propre-site/
    http://www.developpez.net/forums/d53...ccess-sous-ie/
    (le dernier est très instructif).

    Si tu optes pour cette solution, vu que le referer est facilement forgeable, mets un fichier index.html bidon dans le répertoire de tes vidéos pour te prémunir des accès directs à /monrepertoire/.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 158
    Points : 38
    Points
    38
    Par défaut
    Ok merci, sinon j'ai tenté ce qui suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Order Allow, Deny
    Deny from all
    Allow from 85.41.215.236
    Require valid user
    Satisfy Any
    Cela semblait marcher au depart car je n'ai pas eu de demande de login et mot de passe mais la vidéo n'est pas lu au finale...

    Quand je vais dans le dossier j'ai désormais :

    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

  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
    Points : 12 977
    Points
    12 977
    Par défaut
    En faisant comme ça (et à supposer que cela fonctionne), tu n'autorises qu'une seule machine à lire tes vidéos : c'est bien ce que tu veux faire ?

    Pour le détail de l'erreur, il faut consulter les logs d'erreur d'Apache. Comme ça, là, je ne vois pas ce qui pose problème.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 158
    Points : 38
    Points
    38
    Par défaut
    Effectivement je ne souhaite qu'il y ait que mon propre serveur qui puisse lire les vidéos mais cela implique au final que tout le monde accédant à la page du player puisse voir les vidéos (lu dans le player) mais qu'ils ne pourront pas accéder au dossier /video/ vu que uniquement mon serveur y ait autorisé...

    Je ne sais pas si ma manière de penser est bonne...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 158
    Points : 38
    Points
    38
    Par défaut
    Je viens de tester ce qui suit grâce à un des post que tu m'as envoyé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://.*\.monsite\.com/ [NC]
    RewriteRule \.(flv|Flv)$ - [F,NC]
    </IfModule>
    SetEnvIfNoCase Referer "^https?://([^/]*)?fmonsite\.com/" local_ref=1
    SetEnvIf Referer ^$ local_ref=1
     
    <FilesMatch "\.(flv|Flv)$">
    Order allow,deny
    Allow from env=local_ref
    </FilesMatch>
    ça semble fonctionner, je peux lire la video via le player, je peux acceder au dossier /video/ mais en cliquant sur l'une d'elle, je suis redirigé vers une page d'erreur, je ne peux donc pas la télécharger directement.

    Le seul truc dommage c'est que je peux quand même lister le repertoire...

    As -tu une idée ?

  7. #7
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par rigolman Voir le message
    Effectivement je ne souhaite qu'il y ait que mon propre serveur qui puisse lire les vidéos mais cela implique au final que tout le monde accédant à la page du player puisse voir les vidéos (lu dans le player) mais qu'ils ne pourront pas accéder au dossier /video/ vu que uniquement mon serveur y ait autorisé...
    Ce n'est pas comme ça que ça se passe : le player est exécuté par le navigateur, donc c'est le navigateur ou le player qui télécharge la vidéo. Donc on ne peut pas dire que seul ton serveur peut accéder aux vidéos : tout le monde doit pouvoir accéder aux vidéos. Ce que tu veux c'est que les vidéos ne soient accessibles que depuis les pages de ton site. C'est différent : c'est là que le Referer intervient.

    Le seul truc dommage c'est que je peux quand même lister le repertoire...
    C'est pour ça que je t'ai dit de mettre un fichier index.html bidon (mais c'était pas très clair comme explication) : en accédant à /video/, c'est le fichier index.html qui sera renvoyé et donc on ne pourra pas voir le contenu du répertoire. On peut même pousser plus loin en faisant une redirection, si tu veux. Pour cela, dans ton fichier .htaccess, ajoute ceci dans le bloc <IfModule mod_rewrite.c> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteCond ^$ http://%{HTTP_HOST}/ [L]
    Logiquement (mais je peux me tromper ), tu devrais être redirigé sur la page d'accueil de ton site si tu accèdes à /video/. Si ça ne marche pas, essaie avec ^/$ à la place de ^$.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 158
    Points : 38
    Points
    38
    Par défaut
    Merci pour ces explications.

    J'ai mis une page index.html mais celle ci n'est pas reconnu, je peux toujours lister les fichiers présent dans le dossier VIDEO. Lorsque je tente d'aller directement sur la page en entrant index.html dans l'URL, j'ai un 404 not found alors qu'elle est bien présente.

    J'ai aussi tenté ta technique mais les deux ne fonctionne pas :
    RewriteCond ^/$ http://%{HTTP_HOST}/ [L]

    HTACCESS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://.*\.monsite\.com/ [NC]
    RewriteRule \.(flv|Flv)$ - [F,NC]
    </IfModule>
    SetEnvIfNoCase Referer "^https?://([^/]*)?fmonsite\.com/" local_ref=1
    SetEnvIf Referer ^$ local_ref=1
     
    <FilesMatch "\.(flv|Flv)$">
    Order allow,deny
    Allow from env=local_ref
    </FilesMatch>
     
    RewriteCond ^/$ http://%{HTTP_HOST}/ [L]

  9. #9
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    OK, on va faire simple : retire ma RewriteRule et mets ceci à la place :

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 158
    Points : 38
    Points
    38
    Par défaut
    tu vas dire que je le fais exprès mais ca ne fonctionne toujours pas... je peux toujours lister le repertoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://.*\.monsite\.com/ [NC]
    RewriteRule \.(flv|Flv)$ - [F,NC]
    </IfModule>
    SetEnvIfNoCase Referer "^https?://([^/]*)?fmonsite\.com/" local_ref=1
    SetEnvIf Referer ^$ local_ref=1
     
    <FilesMatch "\.(flv|Flv)$">
    Order allow,deny
    Allow from env=local_ref
    </FilesMatch>
     
    Options -Indexes

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 158
    Points : 38
    Points
    38
    Par défaut
    Et maintenant je comprend plus rien car en cliquant sur monfichier.flv, je peux de nouveau le télécharger ! Alors qu'avant j'étais redirigé vers une page 404 ce qui protegeait mes fichiers;..

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 158
    Points : 38
    Points
    38
    Par défaut
    Désolé c'etait une erreur de ma part, la redirection des fichier pour éviter le téléchargement fonctionne.

    L'affichage de la page HTML au lieu de lister le repertoire fonctionne. Mais pas la redirection dès qu'on tente d'accèder au répertoire comme tu me l'as proposé.

  13. #13
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par rigolman Voir le message
    Mais pas la redirection dès qu'on tente d'accèder au répertoire comme tu me l'as proposé.
    Ton .htaccess est bien dans le répertoire video ?

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 158
    Points : 38
    Points
    38
    Par défaut
    Oui tout a fait, le HTACCESS est dans le repertoire video

    En fait le code que tu ma donné me donne un problème "500 internal servor"

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 158
    Points : 38
    Points
    38
    Par défaut
    J'ai une autre question, je viens de découvrir qu'en cliquant sur le lien mavideo.flv, j'etais bien redirigé vers une erreur 404 mais qu'en rentrant directement le nom du fichier dans l'URL je n'etais plus redirigé, je peux télécharger la vidéo, penses-tu que c'est normal ?

    Je pense donc que ta technique de rediriger tout ceux qui tente d'acceder au repertoire vers la page d'accueil est une bonne idée et peut regler le problème ci-dessus.

  16. #16
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par rigolman Voir le message
    J'ai une autre question, je viens de découvrir qu'en cliquant sur le lien mavideo.flv, j'etais bien redirigé vers une erreur 404 mais qu'en rentrant directement le nom du fichier dans l'URL je n'etais plus redirigé, je peux télécharger la vidéo, penses-tu que c'est normal ?
    Ton lien se trouve sur une page de ton site ?

    Si on relit les RewriteXxx qui travaillent sur le referrer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://.*\.monsite\.com/ [NC]
    RewriteRule \.(flv|Flv)$ - [F,NC]
    ça dit ceci : "si les referrer n'est pas vide et s'il n'est pas de la forme ^http://.*\.monsite\.com/, alors on bloque l'accès aux fichiers .flv ou .Flv". Cela veut dire aussi que si on arrive sans referer du tout comme par exemple quand tu tapes directement l'RUL d'une vidéo dans la barre d'adresse, on a accès au fichier ! Donc ton test est parfaitement logique si le lien de la vidéo n'est pas sur une page de ton site. En revanche, si le lien est sur une page de ton site, y a problème.

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 158
    Points : 38
    Points
    38
    Par défaut
    J'ai aussi essayé ce qui suit mais sans résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RedirectPermanent http://www.monsite.com/export/video/ http://www.monsite.com/

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 158
    Points : 38
    Points
    38
    Par défaut
    Ok merci pour l'explication, ca parait logique désormais. Dc je ne peux pas bloquer directement le téléchargement du fichier via l'URL.

    Concernant la redirection du répertoire, j'ai aussi tenté ca, mais sans succès:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RedirectPermanent /video http://www.monsite.com/export/

  19. #19
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Ton lien se trouve sur une page de ton site ?

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 158
    Points : 38
    Points
    38
    Par défaut
    Tu parles du lien pour télécharger la vidéo ?

    oui il se trouve sur le Player Flash, cela semble fonctionner, j'arrive a télécharger la video. Mais si je clic sur un lien listé dans le repertoire cela ne fonctionne pas donc c'est bien.

    Le dernier soucy est donc l'accès direct par l'URL et le fait que tout ceux qui tente d'acceder au repertoire /video ne soit pas redirigé.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Bloquer une accès sur un répertoire et son contenu
    Par zooffy dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/08/2012, 18h29
  2. Bloquer l'accés aux sous-répertoires
    Par kanaziwok dans le forum Langage
    Réponses: 33
    Dernier message: 18/03/2010, 19h23
  3. Bloquer l'accès à ses répertoires
    Par castaka dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 04/12/2007, 12h13
  4. Réponses: 5
    Dernier message: 20/11/2007, 14h33
  5. Réponses: 2
    Dernier message: 25/02/2007, 14h50

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