Подтвердить что ты не робот

Остановить связь с отправкой реферера в пункт назначения

У меня есть страница, где я не хочу, чтобы исходящие ссылки отправляли реферер, чтобы целевой сайт не знал, откуда они пришли.

Я предполагаю, что это невозможно, но я просто хочу убедиться, что не было скрытой магии javascript, которая могла бы это сделать, и это будет работать с некоторыми (если не большинством) браузерами.

Может быть, какой-то умный код статуса HTTP перенаправляет кунг-фу?

Что-то вроде этого было бы прекрасно

<a href="example.com" send_referrer="false">link</a>
4b9b3361

Ответ 2

Для тех, кто посещает в 2015 году и за его пределами, теперь есть правильное решение, получающее поддержку.

HTTP Referrer Policy позволяет управлять отправкой рефералов для ссылок и подресурсов (изображений, скриптов, таблицы стилей и т.д.), и на данный момент он поддерживает в Firefox, Chrome и Opera.

<meta name="referrer" content="no-referrer">

(И более старая версия спецификации поддерживается Microsoft Edge и Safari, но я еще не нашел протестированный способ подачи их старого синтаксиса, а при кормлении всего остального новый синтаксис.)

Кроме того, если вы хотите применить его к тегам audio, img, link, script и video, ссылающимся на ресурсы, которые требуют CORS, не забудьте также установить crossorigin="anonymous" атрибут на них, так что будет использоваться только абсолютный минимум (заголовок Origin).

(Вы не можете избавиться от заголовка Origin при использовании CORS, потому что удаленные узлы должны знать, какой домен делает запрос, чтобы разрешить или запретить его.)

Ответ 4

Bigmack на правильном пути, но изменение местоположения в javascript по-прежнему отправляет реферер в firefox. Использование мета-обновления, похоже, решает проблему для меня.

<a href='data:text/html;charset=utf-8, <html><meta http-equiv="refresh" content="0;URL=&#39;http://google.com/&#39;"></html>'>Link</a>

Ответ 5

Я тоже пытался понять это.

Решение, о котором я думал, это использовать URL-адрес данных, чтобы скрыть фактическую страницу, с которой я пришел.

<a href='data:text/html;charset=utf-8, <html><script>window.location = "http://google.ca";</script></html>'>Link</a>

Эта ссылка открывает страницу, на которой только javascript загружает другую страницу. В моем тестировании ни один реферер не получает конечный пункт назначения. Я не знаю, что он мог бы отправить в качестве реферера, если бы попытался в любом случае, может быть, URL-адрес данных? который не отдает, откуда вы пришли.

Это работает в Chrome. Chrome - моя единственная забота о моей текущей проблеме, но для браузеров, которые не любят javascript на страницах, которые являются URL-адресами данных. Возможно, вы могли бы попробовать обновление мета.

Ответ 6

В дополнение к уже предоставленной информации. Здесь представлена ​​более подробная информация по теме: https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer

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

Что-то, что нужно учитывать в зависимости от вашего конкретного варианта использования. т.е. если вы потянете изображения /css/javascript с сторонних веб-сайтов, то вам может не понадобиться идентифицировать URL-адрес, из которого вы это делаете, и, следовательно, использовать опцию no-referrer. Если вы подключаетесь к другим сайтам с вашего собственного сайта, вы можете захотеть, чтобы они знали, что вы отправляете им трафик. Всегда думайте о последствиях этого с обеих сторон. Если есть конфликт в этих двух областях, тогда есть другие варианты, такие как добавление параметров отслеживания UTM в конец URL-адресов, которые могут оказаться полезными для некоторых людей. Полная информация здесь: https://www.contradodigital.com/2014/06/03/importance-utm-tracking-parameters-social-media/

Ответ 7

Вы также можете использовать службу реферирования, например https://anon.click/