как я обманываю реферера?
Оригинал
header("Location: http://www.example.org");
Я попытался поставить header("Location: http://www.destination.com");
в example.org
но проверяя референта на сайте destination.com , он показывает originalsite.com как referer not example.org !
Чтобы уточнить метод cHao:
example.com имеет файл на сервере bounce.php, который имеет следующий код:
<?php // This is contained in bounce.php on example.com $site = isset($_GET['site'])?$_GET['site']:null; $safe_list = array("domain.com", "domain2.com"); // prevent others from using script for bad reasons if (!empty($site) && in_array($site, $safe_list)) { header('Location: http://' . $site); exit; } ?>
Это пример использования на otherdomain.com
<?php header('Location: http://example.com/bounce.php?site=domain.com'); exit; ?>
Это должно обеспечить «отскок». Но просто знайте, что если у пользователя отключился реферер или он настроен на то, что им нужно, это не будет работать для этой ситуации.
Safe_list должен помочь помешать кому-либо использовать эту страницу для своих целей, в основном разрешены только те сайты, о которых вы говорите.
Обновить
Надеюсь, это то, что вы ищете, и я не неправильно его истолковал.
Вы не можете в ответ HTTP ответить клиенту на отправку любого конкретного HTTP-заголовка, когда он делает свой следующий HTTP-запрос.
Когда вы используете header () в PHP с Location, он не отправляет заголовки прямо туда, где вы устанавливаете местоположение. Вместо этого он отправляет заголовки обратно в браузер (заголовки «Ответ»), затем браузер делает другой запрос указанному местоположению с новым набором заголовков «Запрос». Только пользовательский агент имеет контроль над заголовками запроса.
Это означает, что вам нужно будет сделать запрос с точки зрения клиента – либо с помощью JavaScript, либо, более того, в этом случае cURL (позволяет PHP делать дополнительные HTTP-запросы из сценария).
EDIT: Чтобы подделать ссылку с помощью cURL, вы должны создать ресурс cURL, а затем использовать это перед выполнением запроса:
curl_setopt($ch, CURLOPT_REFERER, 'fakereferer.org');
«Referer» – это заголовок, отправленный веб-браузером, и обычно это последняя страница, которую просматривал браузер. Вы не можете сообщить браузеру, что показывать там, если только вы не владеете сайтом http://www.example.com и не можете настроить для вас все, что вам нужно.