Заголовки не устанавливаются с помощью Referrer-Policy - PullRequest
1 голос
/ 13 июня 2019

У меня есть домен, скажем, www.domain.com, который я перенаправляю на www.whatismyreferer.com для проверки реферера.Когда я перенаправляю страницу, используя PHP-заголовки, в результате ничего не отображается.Я хочу установить referer как www.domain.com на whatismyrefer.com

Вот мой код в файле index.php на www.domain.com:

<?php

header("Referrer-Policy: origin");
header("Location: https://www.whatismyreferer.com",true, 302);
?>

У меня также естьопробованная политика реферера: unsafe-url, но по-прежнему не получает реферера

Но если я использую:

<meta name="referrer" content="origin">
<meta http-equiv="refresh" content="0;https://www.whatismyreferer.com">

, то он показывает реферера.Я не хочу делать это с метатегами, я хочу сделать это с местоположением заголовка

1 Ответ

1 голос
/ 13 июня 2019

Я думаю, проблема, вероятно, в том, как вы это тестируете. Перенаправление 3xx сохраняет исходный Referer - браузер не будет устанавливать новый Referer на самом перенаправлении. Таким образом, если вы прямо запрашиваете .index.php на своем сайте (без реферера), то и по перенаправленному запросу также не будет реферера.

Мета-обновление не является перенаправлением HTTP 3xx и ведет себя так, как если бы вы переходили по обычной ссылке / ссылке, поэтому браузер генерирует Referer.

Вместо этого вам нужно будет протестировать с дополнительным файлом (например, test-referer.html), который ссылается на index.php, чтобы сгенерировать Referer перед проверкой заголовка redirect / Referrer-Policy.

<!-- test-referer.html -->
<a href="/index.php">index.php</a>

UPDATE:

Заголовок Referrer-Policy правильно работает для меня при тестировании таким образом.

Я хочу установить реферера как www.domain.com на whatismyrefer.com

В этом случае вы не можете просто использовать перенаправления HTTP 3xx (без начального реферера), потому что перенаправления 3xx сами по себе не генерируют реферер (как упомянуто выше). Если 3xx переадресация генерирует Referer, то сайты будут постоянно иметь проблемы с потерянными реферрерами из-за канонических перенаправлений и т. Д.

Вам нужно будет использовать мета-обновление (как вы предложили) или, возможно, JavaScript-редирект (не проверенный). Или вы могли бы использовать CURL, если намерение состоит в том, чтобы просто «подделать» Referer - хотя это не приведет непосредственно к перенаправлению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...