Я пытаюсь сделать редирект страницы выхода, основная цель — скрыть данные http referer о точном пути страницы,
Я использовал этот код как страницу exit.php:
<?php
/*
* Sets the HTTP headers to redirect the user to a different page
* along with settings the HTTP status code to 307 Temporary Redirect
*/
function redirect($url) {
header("Location: {$url}", true, 307);
}
/*
* Checks if the URL is valid and uses the HTTP or HTTPS scheme.
*/
function valid_url($url) {
if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED|FILTER_FLAG_HOST_REQUIRED) === false) {
return false;
}
$scheme = parse_url($url, PHP_URL_SCHEME);
if($scheme !== "http" && $scheme !== "https") {
return false;
}
return true;
}if(!isset($_GET['url'])) {
// Missing required argument. What should we do?
redirect("/");
exit;
}else{
$url = $_GET['url'];
if(valid_url($url)) {
redirect($url);
exit;
}else{
// Invalid URL. What should we do?
redirect("/");
exit;
}
}
а затем на странице я добавляю ссылку, как это:
<a href="/exit.php?url=http%3A%2F%2Fexample.com">Example.com</a>
Но когда я проверяю это с помощью https://www.whatismyreferer.com/
Я все еще получаю точный путь, поэтому я не уверен, что я делаю здесь не так
источник кода: http://geekthis.net/post/hide-http-referer-headers/
Как я сказал в комментарии, вы не можете скрыть Referrer со стороны сервера (насколько я знаю), но есть способы сделать это.
Вы можете сказать браузеру не отправлять реферер, добавив метаэлемент так:
<meta name="referrer" content="no-referrer">
Вы можете добавить referrerpolicy
атрибут для элемента привязки (area, img, iframe и link тоже), он принимает следующее значение:
no-referrer, no-referrer-when-downgrade, origin, origin-when-cross-origin, unsafe-url
больше деталей Вот.
Вы также можете пройти noreferrer
к rel
атрибут, более подробная информация Вот
Этот HTTP-заголовок позволяет установить политику отправки реферера, документации Вот, Вы можете использовать его в PHP с header()
функционировать так:
header("Referrer-Policy: no-referrer");
Или в вашем случае:
function redirect($url) {
header("Referrer-Policy: no-referrer");
header("Location: {$url}", true, 307);
}
это статья объясняет эту функцию более подробно.
Других решений пока нет …