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

Langage PHP Discussion :

HTTP REFERER ou Redirection par serveur apache


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Points : 145
    Points
    145
    Par défaut HTTP REFERER ou Redirection par serveur apache
    Bonjour,
    sur un site externe ils ont un lien sur une page de mon site

    j'ai mis ce script pour n’autoriser que quelques pages à accéder à mapage.php

    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
    17
    18
    19
    20
    21
    <?php 
    // Initialisation du referer 
    if( !isset( $_SERVER['HTTP_REFERER'] ) ) 
    { 
        $_SERVER['HTTP_REFERER'] = "" ;  
    } 
    // verifie si chaine de caractere present dans les url autoriss 
    $IsOk=false; 
    if(strpos($_SERVER['HTTP_REFERER'],"http://provenance.html")===FALSE) 
        $IsOk=true; 
    if(strpos($_SERVER['HTTP_REFERER'],"browse.php?")===FALSE) 
        $IsOk=true; 
    if(strpos($_SERVER['HTTP_REFERER'],"quiz.php?")===FALSE) 
        $IsOk=true; 
    // Redirection 
    if(!$IsOk) 
    { 
        header("Location:http://www.message_erreur.php"); // on le renvoie ici 
        exit(); 
    } 
    ?>
    j'ai utiliser strpos pour eviter de me taper la centaine d'url du style toto.php?idc=truc01 qui repointe sur mapage.php

    mais ça me dirige de toute façon sur la page d'accueil et si je viens d'une page non autoriséé ou si je tape l'url dans la barre d'adresse ça m'envoie quant même sur la bonne page et non la page d'erreur...

    est ce qu'on peut configurer le serveur apache pour filtrer / autoriser quelques url a accéder à une page déterminé ? j'ai mis un htaccess mais il ne bloque que le répertoire

    en fait mon besoin est de n'autoriser que quelques url à accéder à ma page mais pas par login car les personnes qui gèrent le site externe qui accède à ma page n'accepte pas de retaper un mot de passe

    merci de votre aide

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    mais ce sont tes tests qui sont pas bons. au lieu de metre un === false tu devrais mettre un !== false ce qui voudra dire que si le referer contient une de tes url, c'est ok. Dans ton cas, quand c'est faux tu mets le ISOK à vrai c'est pour ça que tu n'est pas redirigé vers la page d'erreur.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Points : 145
    Points
    145
    Par défaut
    super !
    ça marche ! merci 2000 fois Stephane !

    j'avais mis !=0 au début mais on m'avait conseiller de mettre ===False

    j'ai une question subsidiaire de débutant

    au lieu de demander une authentification par login, peut t'on se servir de la "valeur" de l'url pour démarrer une session, quel structure aurais ce script

    en clair le gars vient du site machin.fr et sur mapage.php la session enregistre son url referer, il navigue sur les pages appelés par mapage.php pendant le temps de sa session..comme ça je n'ai pas à me soucier des pages appelés depuis mapage.php ?

    encore merci pour ta soluce

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 232
    Points : 15 525
    Points
    15 525
    Par défaut
    je voulais juste te prévenir que le contenu de HTTP_REFERER n'est pas fiable puisqu'il peut être modifier par le visiteur
    si tu veux faire un lien entre 2 sites de façon sécurisée, tu peux par exemple passer un paramètre chiffré que tu calcules sur le 1er serveur et ensuite sur la page d'arrivé tu lis ce paramètre, tu le déchiffre et tu vérifies que l'accès est bien autorisé

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Points : 145
    Points
    145
    Par défaut
    merci ,
    je vais réfléchir à ta remarque, ceci dit je n'ai pas accès au premier site qui vient sur mapage.php , ils ne veulent rien communiquer..j'essaye de me débrouiller pour mettre un minimum de protection et d'éviter que l'on puisse consulter mapage.php en recopiant simplement l'url

    c'est vrai que j'ai lu que HTTP_REFERER n'est pas fiable mais c'est mieux que rien

    encore merci

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

Discussions similaires

  1. Redirections entre serveurs Apache
    Par patou38 dans le forum Apache
    Réponses: 6
    Dernier message: 03/08/2013, 11h27
  2. Redirection vers un second serveur Apache
    Par beheretxea dans le forum Apache
    Réponses: 11
    Dernier message: 29/04/2008, 21h40
  3. Problème apache : http 500 erreur interne au serveur
    Par marvelromy dans le forum Apache
    Réponses: 4
    Dernier message: 08/01/2008, 12h38
  4. Redirection entre deux serveur Apache
    Par BernardT dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 22/02/2007, 14h59
  5. Serveur Apache par dessus ?
    Par Mihaela dans le forum Oracle
    Réponses: 5
    Dernier message: 29/05/2006, 15h53

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