Сокрытие данных заголовков http реферера о точном пути к странице с помощью страницы выхода

Я пытаюсь сделать редирект страницы выхода, основная цель — скрыть данные 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/

1

Решение

Как я сказал в комментарии, вы не можете скрыть 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);
}

это статья объясняет эту функцию более подробно.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]