Limiter l'accès à des fichiers images

Réduire
Ce sujet est fermé.
X
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Limiter l'accès à des fichiers images

    Bonjour,

    Voilà la question que j'essaye de résoudre : aujourd'hui nous possédons une documentation wiki qui comporte plusieurs niveaux de droits (développement, clients, etc).
    Notre objectif est de rapatrier tout le contenu de cette documentation (dynamiquement, parce qu'elle est assez imposante) dans des articles sur notre site joomla.
    Nous gérerons l'accès aux articles avec des catégories et des groupes d'utilisateurs.

    Le problème vient plutôt de la lecture des fichiers, par exemple il semble qu'on peut accéder par son url à une image en tant qu'utilisateur public même si elle est contenue dans un article dont l'accès est pourtant restreint.
    Donc je cherche une solution pour gérer les droits d'accès à ces fichiers (image ou autre), l'idéal étant d'utiliser les droits liés aux catégories et les affecter aux répertoires (l'arborescence est la même). Bloquer le référencement si c'est possible. Et surtout l'affichage, sauf dans un article lorsque l'utilisateur s'est connecté.

    J'espère que la question n'est pas trop vague, merci pour votre aide !

    Fanny

  • #2
    Re : Limiter l'accès à des fichiers images

    Tu as déjà un premier niveau de protection : l'interdiction de lister le contenu du dossier des images en question par un simple index.html ou une instruction dans un .htaccess
    Ainsi, il faudra absolument connaître le nom du fichier (et son adresse exacte) pour y accéder par son URL.
    Après, mais c'est plus complexe, tu peux gérer ces images en utilisant un système de galerie les plaçant hors du site (dans un dossier placé au même niveau que celui du site, par exemple). Ainsi, elles ne sont pas accessible par URL, mais leur insertion dans les articles est alors plus complexe.
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

    Commentaire


    • #3
      Re : Limiter l'accès à des fichiers images

      Ok, j'ai pas encore regardé le fonctionnement d'un .htaccess mais je vais m'y mettre.
      Vous auriez des détails sur l'insertion d'une image externe à partir de ce système de galerie ?

      Commentaire


      • #4
        Re : Limiter l'accès à des fichiers images

        Chaque composant de galerie doit avoir son propre plugin voire un bouton s'intégrant à l'éditeur de texte permettant l'insertion d'images individuelles.
        Il faut explorer les descriptifs ou attendre d'autres avis pour savoir laquelle serait simple à utiliser, dans la mesure où ça demande un travail supplémentaire d'ajout dans la galerie avant de pouvoir insérer dans l'article.
        N'utilisant habituellement pas de galeries de ce type, mais d'autres plus simples ou Event Gallery qui ne gère pas les images de cette manière, je ne peux t'en dire plus.
        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
        MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

        Commentaire


        • #5
          Re : Limiter l'accès à des fichiers images

          Bonjour Fanny

          Envoyé par 8Fanny8 Voir le message
          il semble qu'on peut accéder par son url à une image en tant qu'utilisateur public même si elle est contenue dans un article dont l'accès est pourtant restreint.
          J'interviens "juste" pour te clarifier un point : la gestion des droits dans Joomla n'est pas la gestion des droits au niveau du serveur web. Un fichier, c'est Apache qui gère les droits. Les articles, le contenu, ... c'est Joomla.

          Quand tu as un article qui affiche une image si cette dernière est un fichier stocké sur ton serveur; peu importe si l'article est public ou pas, l'affichage de l'article fera que le navigateur enverra une requête vers ton serveur pour recevoir le fichier image; sans passer par Joomla! donc.

          Ce sont donc deux choses totalement distinctes.

          Pour te répondre,

          1. place un fichier .htaccess dans ton dossier /images pour interdire l'indexaction par les moteurs de recherche (=> comprends bien que les fichiers *sont* accessibles par un url type http: //tonsite/images/une_image.png et que tu demandes, courtoisement, au moteur de recherche de ne pas indexer l'image).

          Code:
          <IfModule mod_headers.c> 
            Header set X-Robots-Tag "index,archive"
          </IfModule>
          2. pour la restiction des images si et seulement si utilisateur autorisé; là, c'est bien plus compliqué. Je n'ai pas de solutions à te proposer. J'imagine que ton site pourrait définir un cookie et que le .htaccess dans le dossier /images/private (p.ex.) donnerait l'accès si et seulement si le cookie est présent. Cela demande du développement et je ne crois pas qu'il faille aller jusqu'à réinventer la roue... reste à trouver cette dernière et je ne sais pas si un composant existe pour cela.

          Bonne journée.
          Christophe (cavo789)
          Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
          Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

          Commentaire


          • #6
            Re : Limiter l'accès à des fichiers images

            Un composant de galerie capable d'accéder à des images hors site ou de placer un .htaccess interdisant à tout autre que lui d'afficher l'image, ça existe, et dans la mesure où ces images ne seront affichées que dans des articles à accès restreint, personne ne pourra donc les voir sans y être autorisé.

            Par exemple, Event Gallery (que j'utilise pour mon site de photos et dont je n'ai pas cherché à savoir si on peut en récupérer des images dans les articles) possède dans son dossier d'images et dans chaque sous-dossier un .htaccess incluant seulement le code suivant :
            order deny,allow
            deny from all
            Avec ce code, pas d'accès par URL aux images de ce dossier.
            Exemple : http://photos-gastaud.fr/images/even..._Ibis_100N.jpg

            J'imagine donc qu'il doit être possible de le faire avec d'autres.

            Interdire l'indexation n'est pas interdire l'accès à qui taperait l'adresse dans son navigateur. Si j'utilise ton code, Christophe, je peux voir l'image.

            Complément : je viens de tester l'insertion de cette image dans un article, aucun problème d'affichage. Donc le .htaccess cité (sans Event Gallery) va permettre d'interdire l'accès isolé à l'image.
            Dernière édition par RobertG à 11/08/2015, 11h46
            "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
            MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

            Commentaire


            • #7
              Re : Limiter l'accès à des fichiers images

              Envoyé par RobertG Voir le message
              Si j'utilise ton code, Christophe, je peux voir l'image.
              Je n'ai jamais dit le contraire... que du contraire

              Le code proposé dans mon point 1. est juste une demande; gentillete; aux moteurs de recherche pour ne pas indexer l'image.

              La protection de l'accès par URL serait dans mon point 2. (utilisation d'un composant qui le fait ou programmation personnelle sur base de .htaccess)
              Christophe (cavo789)
              Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
              Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

              Commentaire


              • #8
                Re : Limiter l'accès à des fichiers images

                Ben pas besoin de composant, puisque le code que je cite suffit à interdire l'indexation et l'accès par URL tout en autorisant linsertion et l'affichage dans les articles (protégés par les droits gérés par Joomla!).
                "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                Commentaire


                • #9
                  Re : Limiter l'accès à des fichiers images

                  Ton code .htaccess interdit l'accès à quiconque par URL ==> quand tu affiches un article qui contient l'image; peux-tu me dire ce que contient le code html de l'article ? Car, forcément, ce ne sera pas un tag type <img src=""> puisque cela va bloquer.

                  Selon moi, l'image a été lue par du code php (ton composant) et envoyée au browser sous la forme d'une image "inline" (code base64), je présume.
                  Christophe (cavo789)
                  Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                  Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                  Commentaire


                  • #10
                    Re : Limiter l'accès à des fichiers images

                    Tu as raison !
                    C'est le test de ton code qui avait laissé l'image en cache dans mon navigateur.
                    Event Gallery a un plugin et un bouton d'insertion d'images, mais je ne sais pas si ça permet de gérer des images individuelles ou des événements entiers.
                    Mais comme je l'ai dit, mon expérience des galeries (lourdes) pour Joomla! est très limitée, d'autant que pour mes propres photos j'utilisais précédemment Coppermine ou Galery (Menalto). Cette dernière, en version 2, stockait toujours ses images dans un dossier hors site pour en interdire l'accès direct, avant de passer en version 3 à un système de protection par .htaccess.
                    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                    Commentaire


                    • #11
                      Re : Limiter l'accès à des fichiers images

                      Disons que les .htaccess et moi, nous sommes plutôt de proches copains depuis la naissance de Nono ;-)
                      Christophe (cavo789)
                      Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                      Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                      Commentaire


                      • #12
                        Re : Limiter l'accès à des fichiers images

                        Merci pour toutes ces précisions.
                        La gestion des droits me parait secondaire, l'essentiel est probablement de bloquer l'affichage direct d'une adresse url de fichier (point 2.).
                        A ce propos on pourrait surement utiliser le mod_rewrite :

                        ...mais je suis encore profane et j'ai du mal à trouver le cas le plus pertinent.

                        Ce qui est sûr c'est que je peux placer un .htaccess unique dans un repertoire www/doc/, c'est la seule section du site que l'on doit protéger.

                        Commentaire


                        • #13
                          Re : Limiter l'accès à des fichiers images

                          Je parle d'une règle qui bloque les adresses d'images exclusivement, quelque chose comme :

                          Code:
                          ##Bloque l'affichage d'images aux utilisateurs publics
                          #
                          #RewriteCond %{HTTP_REFERER} !^http://([a-z]+\.)?exemple.fr\.tld/.*$ [NC]
                          #RewriteRule "\.(gif|jpg|jpeg|png|bmp)$" "-" [NC, F]
                          #
                          ##This is the end
                          Je ne sais même pas si la condition est nécessaire d'ailleurs...

                          Commentaire


                          • #14
                            Re : Limiter l'accès à des fichiers images

                            Comme je l'ai dit, avec l'interdiction de lister le contenu du dossier (plus le code de Christophe pour interdire l'indexation par les robots), tant que personne ne connaît et diffuse l'adresse exacte des images (puisque seuls les membres accédant aux articles grâce à leurs droits pourraient la connaître), il y a peu de chances pour que quelqu'un découvre cette adresse.
                            Et plutôt qu'un dossier "images/doc" trop facile à trouver, augmente les niveaux en utilisant des noms de sous-dossiers plus longs et complexes (sans caractères spéciaux de préférence, exemple docpnTy49wNkZju ou équivalent), idem pour les noms des fichiers, ça rendra plus difficile la découverte fortuite de l'adresse.
                            Par contre, un membre n'ayant pas renouvelé son abonnement pourrait avoir conservé l'adresse de l'image, mais il pourra aussi avoir imprimé la page... le plus gros risque il me semble serait qu'un membre diffuse l'adresse des images ou l'impression des articles, et ça, c'est imparable.
                            "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                            MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                            Commentaire


                            • #15
                              Re : Limiter l'accès à des fichiers images

                              Bonjour

                              Perso, je reste sur mon idée de cookie... mais notez bien que je n'ai jamais implémenté quelque chose du genre.

                              Premier résultat Google : http://www.willmaster.com/blog/conte...ess-cookie.php

                              L'idée serait donc que "un code php" crée un cookie qui sera ensuite utilisé au niveau du .htaccess pour donner l'accès aux images.

                              Mon idée, ici, est purement théorique. Je n'ai jamais fait ça ni vu un truc qui le fasse; je continue toutefois à penser que, si je devais faire un truc du genre pour moi, je prendrai quelques heures pour tester cela.

                              L'avantage du cookie : si j'ai un utilisateur; réel, qui envoie l'url vers mon image à un quidam; ce dernier n'ayant pas le cookie, il n'aura pas accès.

                              Et là, la complication : le cookie devrait être généré par, p.ex., le module de connexion de Joomla. Donc hack du code.

                              Voilà, en gros, ce à quoi je pense.
                              Christophe (cavo789)
                              Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                              Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X