Какой самый надежный способ очистить HTTP-реферер пользователя?


У меня есть страница, которая перенаправляет пользователей на другой сайт с помощью функции заголовка PHP (). Однако я хочу очистить переменные HTTP_REFERER пользователей, прежде чем отправлять их на этот сайт.

Какой самый надежный способ сделать это? Я думаю, PHP не может помочь, так как HTTP_REFERER-это переменная на стороне клиента. Может быть, JavaScript тогда? Есть ли для этого облегченная библиотека?

3 2

3 ответа:

Вы можете обнаружить реферер в JavaScript, но не установить его.

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

Вот процесс на так & пошаговое руководство по использованию этой ссылки SO.

Метод только для js:

location.href="data:text/html,"+
  encodeURIComponent("<script>location.href='http://yahoo.com/'<\/script>");

Даже если бы код оставил ссылку, он был бы адресован dataURL, а не вашему сайту.

Единственный надежный способ-это иметь своего рода страницу перехода между вашим источником и местом назначения.

Например: example.com/var/product/1234 => example.com/redirector/google.com => google.com

Таким образом, конечный сайт получит только ссылку на страницу перехода.

Если вы хотите полностью скрыть тот факт, что пользователи приходят с вашего сайта, Вам нужно разместить страницу перехода на другом домене. The anonym.to сайт предлагает именно такую услугу. Однако, поскольку это свободная, 3-я сторона вместо этого вы можете разместить свой собственный сервис, чтобы гарантировать доступность и предотвратить любое возможное протоколирование запросов. Реализация будет составлять около 3 строк кода PHP.