HTML-код для ссылки на веб-сайт без отслеживания GA [dубликат]

Он не нуждается в отдельном файле заголовка с теми же функциями, что и в главном. Он нужен только в том случае, если вы разрабатываете приложение, используя несколько файлов кода, и если вы используете функцию, которая ранее не была объявлена.

Это действительно проблема с областью.

41
задан shiva 25 July 2011 в 15:33
поделиться

9 ответов

С 2015 года вы предотвращаете отправку заголовка Referer:

Просто добавьте это в раздел заголовка веб-страницы:

  & lt; meta name =  "referrer" content = "no-referrer" / & gt;   

Это работает как для ссылок, так и для запросов Ajax, сделанных кодом JavaScript на странице.

Другие действительные опции meta включают:

  & lt; meta name = "referrer" content = "unsafe-url" / & gt;  & lt; meta name = "referrer" content = "origin" / & gt;  & lt; meta name = "referrer" content = "no-referrer-when-downgrade" / & gt;  & lt; meta name = "referrer" content = "origin-when-cross-origin" / & gt;   

• Посмотрите, работает ли он для вашего браузера здесь: http://caniuse.com/#feat=referrer-policy

• См. Спецификации здесь: http://w3c.github.io/webappsec/specs/referrer-policy/

Также обратите внимание, что браузеры теперь отправляют Origin (с запросами CORS и запросами POST, см. здесь: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin ), который включает в себя домен и порт, и, насколько я знаю, нельзя удалить. Если вы используете & lt; meta name = "referrer" content = "origin" / & gt; , то реферер будет содержать схожую информацию с заголовком Origin , что уже хорошо из

Обновление:

Если вы хотите удалить реферер только с помощью JavaScript, вы можете добавить соответствующий метатег динамически перед выполнением запроса Ajax. Этот JavaScript добавит & lt; meta name = "referrer" content = "no-referrer" / & gt; в раздел заголовка веб-страницы:

  var meta =  document.createElement ( 'мета');  meta.name = "referrer";  meta.content = "no-referrer";  document.getElementsByTagName ( 'голова') [0] .appendChild (мета);   
82
ответ дан MarcG 16 August 2018 в 02:23
поделиться
  • 1
    Как отмечалось на caniuse.com, это не работает для IE, некоторых мобильных браузеров и MS Edge имеет частичную поддержку. Поэтому этого недостаточно для того, чтобы конфиденциальная информация в URL-адресах отсутствовала у третьих лиц. – David Leppik 12 January 2016 в 17:43
  • 2
    Согласно документу w3.org/TR/referrer-policy , нет упоминания о «no-referrer». Должно ли оно быть: & lt; meta name = & quot; referrer & quot; содержание = & Quot; ни & Quot; / & GT; – Rop 19 May 2016 в 08:09
  • 3
    В вашей ссылке w3c.github.io/webappsec-referrer-policy , она конкретно говорит: «... предоставляется только для обсуждения ... публикация здесь не подразумевает одобрения ее содержимого W3C , Не цитируйте этот документ, кроме как в процессе работы ». – Rop 19 May 2016 в 08:27
  • 4
    Роп, спасибо, что указали это. Я полагаю, что content = never более совместимо, чем content = none , поскольку новая спецификация говорит, что "никогда" или «no-referrer», return «no-referrer». . Хотя в нем также говорится, что Авторы рекомендуют избегать устаревших ключевых слов никогда, по умолчанию и всегда. Предпочтительны ключевые слова no-referrer, no-referrer-when-downgrade и небезопасный URL. . – MarcG 21 May 2016 в 07:43
  • 5
    Стоит отметить, что content = no-referrer не работает во всех браузерах, тогда как появляется content = never работает во всех браузерах, которые поддерживают no-referrer а затем некоторые. На данный момент вы, вероятно, должны использовать content = never . – bbodenmiller 23 November 2016 в 09:22

Я тоже искал решение, и, к счастью, нашел этот сайт Hide My Referrer . Меня поразило то, что он даже работает для https> https-запросов.

Он создаст ссылку, которую вы можете использовать, которая будет делать именно то, что вы ищете.

-3
ответ дан Brian Smith 16 August 2018 в 02:23
поделиться
  • 1
    WTF!?! Это предоставляет Referer некоей ненадежной третьей стороне (hidemyreferrer.com), поэтому она ничего не решает и, возможно, делает вещи еще хуже. Выполнение чего-то нерегулярного подобного даже имеет общее название: принцип флориани – Tino 23 May 2017 в 13:10
  • 2
    @Tino - очевидно, вы понятия не имеете, как работает сайт моего реферера. Он просто работает и полностью безопасен в использовании. – Brian Smith 1 June 2017 в 02:51

Существует множество механизмов для этого, в зависимости от того, какую версию браузера вы используете. Для любого браузера, если адрес назначения превышает HTTP, вы можете «отмыть» происхождение, перенаправив его на страницу HTTPS, которая затем перейдет на целевую страницу.

Для IE вы можете выполнять навигацию с использованием JavaScript ( например window.open), который подавит рефери. Или вы можете использовать META Refresh, но для этого существует первоочередная стоимость. Для браузеров на базе WebKit см. Параметр NoReferrer LINK REL: http://www.webkit.org/blog/907/webkit-nightlies-support-html5-noreferrer-link-relation/

4
ответ дан EricLaw 16 August 2018 в 02:23
поделиться

Если вы заинтересованы только в сокрытии полного URL-адреса и не против того, чтобы ваше доменное имя было открыто, этот небольшой код Javascript выполняет эту работу.

Ваш пользователь находится в example.com/ secret_url_we_want_to_hide , ваш пользователь нажимает ссылку, которая должна отправить их на google.com . но вместо & lt; a href = "http://google.com" & gt; Перейти к Google & lt; / a & gt; , мы используем это:

a href = "http://example.com/redirect.html#http://google.com" & gt; Перейти к Google & lt; / a & gt;

Где /redirect.html - это HTML-страница, содержащая следующее: (Редактировать: см. обновление!)

  & lt; html & gt; & lt; head & gt; & lt; / head & gt; & lt; script & gt;  window.location.replace (location.hash.substring (1));  & Lt; / сценарий & GT; & Lt; / HTML & GT;   

Google.com увидит http://example.com/redirect.html в теге referrer и никогда не увидит фактический example.com /secret_url_we_want_to_hide.

UPDATE:

У Firefox есть ошибка с location.hash, обходной путь следующий:

 [D9] & Lt; & HTML GT; & Lt; & головку GT; & Lt; / & головку GT; & Lt; & сценарий GT;  workaround_hash = location.href.split ( '#') сращивать (1) .join ( '#').  window.location.replace (workaround_hash);  & Lt; / сценарий & GT; & Lt; / HTML & GT;   
5
ответ дан Hello World 16 August 2018 в 02:23
поделиться
  • 1
    Это хорошее решение, но оно подходит только для браузеров. Все, что игнорирует Javascript, например cUrl или другой не-браузерный http-клиент, не будет перенаправлять вообще – Krzysztof Wende 15 January 2016 в 12:08

Существует другой метод, использующий метод history.replace () , чтобы скрыть строку запроса, например, если вы хотите http://example.com/search?q=100 замените на http://example.com/search , вы можете сделать следующим образом:

  history.replace (null, null, 'search  ')  

Надеюсь, это поможет! :

D
0
ответ дан Jack Chen 16 August 2018 в 02:23
поделиться

Вы не можете. Это решение браузеров отправить референта или нет. Вы можете скрыть свой референт, используя анонимайзер . .

-2
ответ дан Jacob 16 August 2018 в 02:23
поделиться

В Javascript есть решение для перекрестного браузера, оно использует динамически Iframes , проверяет доказательство концепции (отказ от ответственности: он использует немного JS lib I, закодированный для этого цель).

10
ответ дан jpgerek 16 August 2018 в 02:23
поделиться

Ваше предположение о доступе к заголовку Referer с помощью javascript невозможно. Подобно заголовку User-Agent в http, referer и т. Д., Javascript не может быть доступен. Значения этих заголовков подаются браузером. Что вы можете сделать, это сложная работа, если вам нужно это сделать.

0
ответ дан nibin012 16 August 2018 в 02:23
поделиться

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

Я использовал Google чтобы посетить несколько ресурсов по этой теме, и да, было очень сложно найти ответ, пока кто-то не указал мне посмотреть на php.net для решения.

Я нашел решение при использовании

  header ('Refresh: 0; url = index.php');   

Но только приведенный выше код не является решением. Решение заключается в его размещении. Вот полный код:

  $ ref = @ $ _ SERVER [HTTP_REFERER];  $ domain = parse_url ($ ref, PHP_URL_HOST);  Если ($ domain === "google.com") {header ('Refresh: 0; url = index.php');  // Сбрасывает информацию заголовка на сайт узла, чтобы при обновлении страницы счетчик не увеличивал ///, но увеличивался только тогда, когда кто-то снова посещал URL-адрес google  

После «обновления», информация заголовка изменяется на информацию об узле хоста, поэтому на странице обновить оператор «if» не будет проверяться, а счетчик не увеличится.

Вы можете поместить свой счетчик попадания в блок IF. Вы также можете запрограммировать различные параметры, чтобы записывать пустые хиты на свой сайт и различные параметры для регистрации всех pageloads / просмотров страниц.

Надеюсь, что это поможет .....

1
ответ дан Sumit 16 August 2018 в 02:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: