2009-08-16 5 views
0

Легко ли это как $ ENV {'HTTP_REFERER'}? или есть что-то еще, что мне нужно сделать?Как мне получить сайтURL, вызывающий мою страницу, когда она загружается в iFrame?

Пример: Мой сайт: sample.php

Calling сайта ж/IFRAME: somesite.com

Я хочу sample.php, когда он загружает, чтобы иметь возможность использовать "somesite.com" для ввода как переменную.

ответ

5

Нет никакой разницы между встроенным фреймом и обычной страницей. И загрузка встроенного фрейма изначально с src отправит HTTP-реферер.

3

Прежде всего, ваша страница не должна зависеть на Referer присутствует и не правильно: это информация, которая отправляется в браузере, и могу либо:

  • быть отключен (некоторые брандмауэры/антивирус удаляет эту информацию, например, или когда-то недавно)
  • или может быть изменен/подделан (если вы немного ищите, должно быть какое-то расширение Firefox, которое позволяет вам легко подделать это), например,


Для получения дополнительной информации, см, например:

Эти сообщения, как "согласен" со мной ^^


Теперь вы можете enventually используйте его, чтобы добавить некоторую функцию; но вы не должны rely на нем для работы вашего сайта ;-)

+0

Я уже знаю, что материал. Я использую имя сайта + открытый ключ + закрытый ключ для некоторого ведения журнала, который я делаю, я просто хочу знать, как его получить, когда страница вызывается внутри iFrame. Это то же самое или что-то еще? Это мой вопрос, который в вашем бессвязном не ответил. – RiddlerDev

+0

Только для полноты: Firefox-аддоны - это «Данные для защиты» и «Изменить заголовки». –

0

Как упоминал Паскаль МАРТИН, вы не должны доверять значению Referer абсолютно.

Расширение ответа Gumbo: поскольку Referer передается в виде заголовка в HTTP-запросе, получая его в скрипте, загруженном в , точно так же, как и его получение для любого другого скрипта.

Когда браузер запрашивает страницу, указанную атрибутом src, в , он отправит HTTP-запрос, подобный этому для любого другого ресурса, и будет включать значение заголовка Referer.

Значение заголовка Referer будет содержать URL-адрес страницы, содержащей . Так что если у вас есть PHP скрипт с именем страниц с-iframe.php и содержал <iframe src="sample.php" /> запрос HTTP для sample.php может выглядеть примерно так:

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

В sample.php вы бы используйте $ENV{'HTTP_REFERER'}, чтобы получить значение, и оттуда вы можете разобрать горячее имя somesite.com.

1

Для надежного способа доступа к исходному URL-адресу вы можете добавить параметр GET в iframe src, содержащий родительский URL, когда вы его вставляете. Вы можете использовать Javascript, чтобы добавить это автоматически вместе с встраиванием.

Вот пример, который встраивает IFRAME в конце <body> тега:

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

Вы можете получить доступ к родительскому URL надежно из PHP с:

$parent_url = $_GET['parent'];