php: spoofing referrer?

как я обманываю реферера?

Оригинал

header("Location: http://www.example.org"); 

Я попытался поставить header("Location: http://www.destination.com"); в example.org

но проверяя референта на сайте destination.com , он показывает originalsite.com как referer not example.org !

Solutions Collecting From Web of "php: spoofing referrer?"

Чтобы уточнить метод 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 и не можете настроить для вас все, что вам нужно.