2009-08-16 9 views

Répondre

5

Il n'y a aucune différence entre un cadre en ligne et une page normale. Et le chargement d'un cadre en ligne initialement avec src enverra le référent HTTP.

3

Tout d'abord, votre page ne doit pas dépendre du Referer être présent ni correct: il est une information qui est envoyé par le navigateur, et peut soit:

  • être désactivé (certains pare-feu/antivirus supprimer cette information, par exemple - ou l'a fait il ya quelque temps)
  • ou être modifié/falsifié (si vous recherchez un peu, il doit y avoir une extension firefox qui vous permet de truquer cela assez facilement, par exemple)


Pour plus d'informations, voir, par exemple:

Ces postes à la fois "d'accord" avec moi ^^


Maintenant, vous pouvez enventually utilisez-le pour ajouter une fonctionnalité; mais vous ne devez pas compter dessus pour que votre site Web fonctionne ;-)

+0

Je sais déjà ce genre de choses. J'utilise le nom du site + la clé publique + la clé privée pour la journalisation que je fais, je veux juste savoir comment l'obtenir quand la page est appelée dans un iFrame. Est-ce la même chose ou quelque chose d'autre? C'est ma question, qui, dans votre démarche, n'a pas réussi à répondre. – RiddlerDev

+0

Juste pour être complet: Les addons de Firefox sont "Tamper Data" et "Modify Headers". –

0

Comme l'a mentionné Pascal MARTIN, vous ne devez absolument pas faire confiance à la valeur Referer. Expansion de la réponse de Gumbo: puisque le Referer est transmis en tant qu'en-tête dans une requête HTTP, le récupérer dans un script chargé dans un est exactement le même que celui d'un autre script. Lorsque le navigateur demande la page spécifiée par l'attribut src dans le , il envoie une requête HTTP comme pour toute autre ressource et inclut la valeur d'en-tête Referer.

La valeur de l'en-tête Referer contiendra l'URL de la page hébergeant le . Donc, si vous aviez un script PHP nommé la page avec-iframe.php et il contenait <iframe src="sample.php" /> la requête HTTP pour sample.php pourrait ressembler à:

GET /sample.php HTTP/1.1 
Host: somesite.com 
... 
Referer: http://somesite.com/page-with-iframe.php 

Dans sample.php vous le feriez Utilisez $ENV{'HTTP_REFERER'} pour récupérer la valeur et à partir de là, vous pouvez analyser le nom de domaine somesite.com.

1

Pour une manière vraiment fiable d'accéder à l'URL parent, vous pouvez ajouter un paramètre GET au src iframe contenant l'URL parent lorsque vous l'intégrez. Vous pouvez utiliser Javascript pour l'ajouter automatiquement avec l'intégration.

Voici un exemple qui intègre l'iframe à la fin de la balise <body>:

var iframe = document.createElement('iframe'); 
iframe.src = '/sample.php?parent=' + window.location; 
document.body.appendChild(iframe); 

Vous pouvez alors accéder à l'URL parent fiable de PHP avec:

$parent_url = $_GET['parent'];