Téléchargement réservé aux membres du site

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Astuce] Téléchargement réservé aux membres du site

    Régulièrement, on rencontre le besoin de disposer d'une zone fermée pour les membres du site, où certains fichiers sont proposés au téléchargement et ne doivent être accessibles qu'à ces membres.

    Choisir une extension comme un gestionnaire de téléchargement est souvent surdimensionnée, un simple lien dans l'article ou un champ personnalisé sont plus que suffisant - mais cette solution pose un gros problème : si le lien de téléchargement exact est connu, le fichier correspondant peut également être téléchargé sans authentification et partagé par tous !

    Pour contourner ce problème, je vous propose un simple script php qui, associé à un complément au fichier .htaccess, veille à ce que certains répertoires ne soient accessibles qu'aux utilisateurs connectés. Pratique : cette solution ne nécessite aucune adaptation des fichiers ou des liens existants, elle peut être intégrée sans problème dans des projets existants.

    Première Étape : le script PHP

    Cette partie de la solution est un simple script PHP qui :
    • Charge le framework Joomla
    • Vérifie si l'utilisateur est connecté
    • Extrait le fichier correspondant de l'URL
    • Envoie le fichier au navigateur.
    • Si l'utilisateur n'est pas connecté, un 403 est renvoyé.

    Vous trouverez le code du script sur Github !

    Il existe une version du script pour Joomla 3
    https://gist.github.com/SniperSister...d4682e4fd36498

    et une version du script pour Joomla 4
    https://gist.github.com/SniperSister...17bf14fb978336

    Deuxième Étape : la magie du .htaccess

    Comment réorienter les appels vers notre script ? C'est là que les règles de réécriture du .htaccess entrent en jeu ! Ces règles nous permettent de rediriger tous les appels vers un certain dossier, dans l'exemple /images/downloads, vers le script PHP readmedia.php :

    Code:
    RewriteRule ^images\/downloads\/.*$ readmedia.php [L].
    Le serveur web se charge donc ici pour nous du dur labeur et notre site Joomla peut rester inchangé.

    Source : djumla.de
    herve, cavo789 et 2 autres aiment ceci.
    Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

  • #2
    Super intéressant !
    Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

    Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

    Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

    Commentaire


    • #3
      Du temps où je vendais aeSecure, j'avais mis en place une technique similaire, basée sur .htaccess avec une redirection pour capturer l'URI.

      Mes fichiers étaient en dehors de la racine du site les rendant inaccessibles autrement.

      Cette technique a parfaitement fonctionnée des années durant.
      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


      • #4
        Envoyé par cavo789 Voir le message
        Cette technique a parfaitement fonctionné des années durant.
        Merci Christophe, effectivement la technique date de plusieurs années et surtout elle est fiable.

        C'est juste de pouvoir expliquer à nouveau et spécifiquement pour Joomla 4 !



        woluweb aime ceci.
        Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

        Commentaire


        • #5
          Suis juste sur smartphone (vacances obligent) mais est ce que on peut vérifier sur base d'un User Group ?
          Ici j ai l'impression que ça vérifie juste si l"utilisateur existe ou pas
          Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

          Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

          Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

          Commentaire


          • #6
            Envoyé par woluweb Voir le message
            Suis juste sur smartphone (vacances obligent) mais est ce que on peut vérifier sur base d'un User Group ?
            Ici j ai l'impression que ça vérifie juste si l"utilisateur existe ou pas
            On ne vérifie que si l'utilisateur est authentifié ou non (c'est le plus rapide à analyser) mais on peut faire évoluer le script...
            Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

            Commentaire

            Annonce

            Réduire
            Aucune annonce pour le moment.

            Partenaire de l'association

            Réduire

            Hébergeur Web PlanetHoster
            Travaille ...
            X