Autoriser l'exécution d'un fichier uniquement du site

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

  • Autoriser l'exécution d'un fichier uniquement du site

    Bonsoir,

    J'ai un lien qui appelle un fichier PHP situé dans un sous-dossier du site.
    Ce lien est visible uniquement des utilisateurs connectés, mais rien n'empêche de taper directement son URL.

    Avez-vous une idée pour permettre son exécution uniquement si l'on est connecté ou si l'appel provient du site ?

    Je peux ajouter un test au début du fichier PHP appelé, mais lequel ...

    Je n'ai trouvé que cette vieille discussion sur le sujet :


    Merci pour vos lumières.
    UP, le plugin universel à découvrir sur https//up.lomart.fr
    bgMax
    , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

  • #2
    Re : Autoriser l'exécution d'un fichier uniquement du site

    Envoyé par lomart Voir le message
    Bonsoir,

    J'ai un lien qui appelle un fichier PHP situé dans un sous-dossier du site.
    Ce lien est visible uniquement des utilisateurs connectés, mais rien n'empêche de taper directement son URL.

    Avez-vous une idée pour permettre son exécution uniquement si l'on est connecté ou si l'appel provient du site ?

    Je peux ajouter un test au début du fichier PHP appelé, mais lequel ...

    Je n'ai trouvé que cette vieille discussion sur le sujet :


    Merci pour vos lumières.
    Vu que tu ne peut empêcher son exécution pourquoi ne pas wrapper le code de ta page ds une boucle if (usergroup = enregistres)

    { mon code} else {} comme ça tu est sur que ton code est pour les utilisateurs enregistré uniquement.

    Commentaire


    • #3
      Re : Autoriser l'exécution d'un fichier uniquement du site

      Hello

      Du rab de protection en plus de la suggestion du dessus.
      (pas testé mais ca devrais le faire)

      Code:
      RewriteCond %{REQUEST_FILENAME} nomdufichier\.php [NC]
      RewriteCond %{HTTP_HOST}   !^www\.monsite\.com [NC]
      #On évite que localhost se mette a crier (file_get_content par exemple et hhtphost ! du site)
      RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1
      RewriteRule .* - [F,NS,L]

      Commentaire


      • #4
        Re : Autoriser l'exécution d'un fichier uniquement du site

        Bonjour,

        Avez-vous une idée pour permettre son exécution uniquement si l'on est connecté ou si l'appel provient du site ?
        Charger au début de ce fichier le framework Joomla! puis un JFactory::getUser() suivi d'un test sur le user id... Et là, ça devient secure.
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : Autoriser l'exécution d'un fichier uniquement du site

          La solution de Jisse me convient parfaitement.

          Si cela peut servir à d'autres, j'ai ajouté le code ci-dessous au début du fichier appelé

          Code PHP:
          /* Chargement framework Joomla */
          // Définition constante d'exécution
          define('_JEXEC'1);
          // Définition chemin vers Joomla
          // cela dépend de l'emplacement du fichier, dans mon cas : /niv1/niv2/fichier.php
          define('JPATH_BASE''../../');
          // Définition des variables globales de chemin d'accès
          require_once(JPATH_BASE.'includes/defines.php');
          require_once(
          JPATH_BASE.'includes/framework.php');
          // créer l'objet application
          $app JFactory::getApplication('site');
          // Test sur utilisateur
          $user = & JFactory::getUser();
          //var_dump($user);
          if ($user->guest) { 
              die(
          'Acces interdit');

          Je n'ai pas l'habitude d'appeler explicitement le Framework Joomla!, donc vos commentaires sont les bienvenus
          Dernière édition par lomart à 25/02/2016, 19h29
          UP, le plugin universel à découvrir sur https//up.lomart.fr
          bgMax
          , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

          Commentaire


          • #6
            Re : Autoriser l'exécution d'un fichier uniquement du site

            C'est la bonne méthode sauf
            Code PHP:
            $user = & JFactory::getUser(); 
            qui devrait être
            Code PHP:
            $user JFactory::getUser(); 
            L'appel d'objets par référence (ils sont toujours une référence) est Deprecated depuis PHP 5.1, et en PHP 7 génère une fatal error (Parse error)
            Pas de demande de support par MP.
            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

            Commentaire


            • #7
              Re : Autoriser l'exécution d'un fichier uniquement du site

              Merci pour cette précision
              UP, le plugin universel à découvrir sur https//up.lomart.fr
              bgMax
              , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X