Можно ли удалить реферер в PHP перед перенаправлением? - PullRequest
3 голосов
/ 25 августа 2011

Но поскольку браузер - это единственное, что управляет реферером, я думал о сценарии, который удаляет реферера до того, как он будет перенаправлен на ссылку, по которой он хочет перейти.

Например,

http://mywebsite.com/url.php?u=http://www.stackoverflow.com

Где url.php может удалить реферер и затем перенаправить. Можно ли это сделать каким-либо образом?

Ответы [ 4 ]

9 голосов
/ 04 мая 2012

На самом деле вы можете сделать это на практике, если вы используете HTTPS на своем веб-сервере.Вы должны принудительно установить соединение через HTTPS в качестве посредника, поэтому последовательность перенаправлений будет:

  1. http://mywebsite.com/url.php?u=http://www.stackoverflow.com ->
  2. https://mywebsite.com/url.php?u=http://www.stackoverflow.com ->
  3. http://stackoverflow.com

В большинстве случаев браузеры не отправляют реферера в таких случаях , чтобы избежать утечки информации, которая была конфиденциальной и зашифрованной по незащищенным каналам, сторонним лицам.


Более новые браузеры теперь все равно поддерживают это должным образом с метатегом.Вы можете добавить:

<meta name="referrer" content="never">

В общем, хотя вы должны в любом случае установить эту опцию на все своих страниц, так что перенаправление на стороне клиента и сервера будет в порядке.

1 голос
/ 25 августа 2011

Реферер приходит из браузера, который вы уже указали, что понимаете.

Это было бы достаточно просто для написания быстрого теста.

Теоретически, если вы перенаправляете на скрипт, который затем перенаправляет снова, реферер будет скриптом перенаправителя, а неоригинальный скрипт.

Если вы спрашиваете, может ли ваш скрипт перенаправить «невидимо» - тогда нет, это вне контроля скрипта.

0 голосов
/ 03 мая 2012

попробуйте этот код:

$url = 'your target';
header("HTTP/1.1 301 Moved Permanently");
header( "Location: $url" );
0 голосов
/ 25 августа 2011

Если ваше перенаправление является перенаправлением HTTP, то нет, вы не можете это контролировать.

И, честно говоря, не стоит. Задача браузера - формировать значение REFERER, а не ваше.

...