Поскольку реферер предоставляется браузером для веб-сервера, я вижу только два способа убедиться, что внешние сайты не видят этот «скрытый» URL.
Первый способ будет (как вы сказали), чтобы удалить внешние ссылки со скрытой страницы, запустив их через перенаправитель, который использует header("location: ...");
).Да, это будет работать.Вы можете просто использовать это в целом, чтобы отслеживать выходы с вашего сайта.
Второй способ - перестать скрывать этот URL.В конце концов, он не будет скрыт навсегда.Google / Alexa / любая панель инструментов попадает на нее, и bam, она проиндексирована.Так что вместо этого встроите эту скрытую функциональность в нечто основанное на сеансахСоздайте сценарий, который изменяет свои выходные данные в зависимости от переменных сеанса и разрешает показ скрытого содержимого только в том случае, если люди вошли в систему или предварительно просмотрели свою запись или что-то подобное.
Третий (и, вероятно, лучший) способ - этореализовать надлежащий контроль доступа, чтобы анонимные пользователи не могли посетить страницу с ограниченным содержанием.Если вы хотите, чтобы анонимный оригинальный постер мог посещать СВОЮ СОБСТВЕННУЮ почту, вы можете отправить им файл cookie, а затем проверить файл cookie при посещении неутвержденного сообщения.
Например, после отправки на утверждение:
setcookie('postkey', mysql_insert_id());
Тогда:
$pieces=explode($_SERVER['PHP_SELF']);
$postid=$pieces[2]; // or whatever
if (!isset($_COOKIE['postkey'])) {
header("Location: http://example.org/");
} else if ($_COOKIE['postkey'] != $postid) {
header("Location: http://example.org/");
}
и т. Д.Возможно, вам нужна лучшая защита, чем эта, но она должна дать вам некоторые идеи.