2015-07-13 2 views
1

Предположим, у нас есть два веб-сайта: A и B.Как узнать, какой сайт показывает мой сайт, используя iframe

На сайте A есть Embeded iframe, который связан с сайта B (сайт A обслуживает сайт B с помощью iframe).

Есть ли способ, которым сайт B знает, что сайт A обслуживает его, и как получить эту информацию с помощью PHP? Я хочу знать доменное имя и IP-адрес веб-сайта A.

Итак, моя проблема в том, что я не знаю заранее, где мой сайт будет обслуживаться, но я хочу узнать, кто его обслуживает.

Существует способ указать URL-адрес для URL-адреса iframe. Например

<iframe src="http://mywebsite.com?url=commingFromWebsiteB"></iframe> 

Таким образом, я могу проверить, если это IFrame будет поместить его на сайте B, используя следующий код:

$sourceWebsite=$_GET['url']; 

Но проблема в том, что администратор сайта B, можно скопировать и вставить этот IFRAME на сайте C и оставьте это url параметром равным 'commingFromWebsiteB', даже если iframe теперь отображается на веб-сайте C, который не является моим партнером.

Thx!

+0

http://stackoverflow.com/questions/15662627/how-to-know -if-a-website-still-put-my-iframe-on-his-its-website – Maurize

+0

Вы можете использовать некоторую переменную флага с URL-адресом в качестве строки запроса. –

+0

@maurize Проблемы не совпадают. В вопросе, который вы вставили, пользователь знает веб-сайт, на котором будет iframe, поэтому он может проверить его с помощью cURl или любого другого метода, и я не знаю URL веб-сайта и IP-адрес. Мой вопрос сказал на языке sql: _выберите все веб-сайты, которые отображают мой сайт, используя iframe._ – MrD

ответ

1

Ну, вы можете проверить реферер. Либо черный список или белый список. Этот пример предназначен для черных списков, если вы знаете «вора».

<script type="text/javascript"> 
if(document.referrer.indexOf("otherdomain.com") != -1) { 
    window.location = "yourdomain.com/error.html"; 
} 
</script> 

с другой стороны, вы можете также создать белый список в PHP и попытаться проверить, прежде чем, как это:

$show = false; 
if (isset($_SERVER['HTTP_REFERER'])) { 
    $array = parse_url($_SERVER['HTTP_REFERER']); 
    if (strpos($array['host'], 'yourdomain.com') === false){ 
     $show = false; 
    } else { 
     $show = true; 
    } 
} 

if ($show == false){ 
    header('HTTP/1.0 403 Forbidden'); 
    exit('Forbidden'); 
} 
+0

Хм, возможно, это хорошее решение, но я думаю, что пойду с другим подходом. – MrD

Смежные вопросы