Но поскольку браузер – единственное, что управляет реферером, однако я думал о скрипте, который удаляет реферер, прежде чем он будет перенаправлен на ссылку, к которой они хотят перейти.
Например,
http://mywebsite.com/url.php?u=http://www.stackoverflow.com
Где url.php может удалить реферер, а затем перенаправить. Можно ли это сделать каким-либо образом?
Если ваше перенаправление является перенаправлением HTTP, то нет, у вас нет контроля над этим.
И, честно говоря, вы тоже. Это бизнес браузера, чтобы сформировать значение REFERER
, а не ваше.
Фактически это можно сделать на практике, если вы используете HTTPS на своем веб-сервере. Вам нужно заставить соединение перейти через HTTPS в качестве посредника, поэтому последовательность перенаправления будет следующей:
http://mywebsite.com/url.php?u=http://www.stackoverflow.com
-> https://mywebsite.com/url.php?u=http://www.stackoverflow.com
-> http://stackoverflow.com
Большинство браузеров не отправляют реферер в таких случаях, чтобы избежать утечки информации, которая была конфиденциальной и зашифрованной по небезопасным каналам, к несвязанным третьим сторонам.
Референт приходит из браузера, о котором вы уже указали, что понимаете.
Это было бы достаточно просто, чтобы вы могли написать быстрый тест.
Теоретически, если вы перенаправляетесь на скрипт, который затем перенаправляет снова, референт будет сценарием перенаправитель, а не оригинальным скриптом.
Если вы спрашиваете, может ли ваш сценарий перенаправлять «невидимо», то нет, это вне контроля скрипта.
попробуйте этот код:
$url = 'your target'; header("HTTP/1.1 301 Moved Permanently"); header( "Location: $url" );