Он не нуждается в отдельном файле заголовка с теми же функциями, что и в главном. Он нужен только в том случае, если вы разрабатываете приложение, используя несколько файлов кода, и если вы используете функцию, которая ранее не была объявлена.
Это действительно проблема с областью.
С 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 (мета);
Я тоже искал решение, и, к счастью, нашел этот сайт Hide My Referrer . Меня поразило то, что он даже работает для https> https-запросов.
Он создаст ссылку, которую вы можете использовать, которая будет делать именно то, что вы ищете.
Существует множество механизмов для этого, в зависимости от того, какую версию браузера вы используете. Для любого браузера, если адрес назначения превышает 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/
Если вы заинтересованы только в сокрытии полного 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;
Существует другой метод, использующий метод history.replace () , чтобы скрыть строку запроса, например, если вы хотите http://example.com/search?q=100
замените на http://example.com/search
, вы можете сделать следующим образом:
history.replace (null, null, 'search ')
Надеюсь, это поможет! :
DВы не можете. Это решение браузеров отправить референта или нет. Вы можете скрыть свой референт, используя анонимайзер . .
В Javascript есть решение для перекрестного браузера, оно использует динамически Iframes
, проверяет доказательство концепции (отказ от ответственности: он использует немного JS lib I, закодированный для этого цель).
Ваше предположение о доступе к заголовку Referer с помощью javascript невозможно. Подобно заголовку User-Agent в http, referer и т. Д., Javascript не может быть доступен. Значения этих заголовков подаются браузером. Что вы можете сделать, это сложная работа, если вам нужно это сделать.
Я искал аналогичное решение, забросил реферер, но только для подсчета уникальных посещений со ссылкой на веб-сайт. Проблема была в том, что если кто-то посетил мой сайт с определенной ссылки, счетчик посещений увеличился бы, но если этот человек обновил страницу, счетчик посетителей все равно поднялся.
Я использовал 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 / просмотров страниц.
Надеюсь, что это поможет .....
content = never
более совместимо, чемcontent = none
, поскольку новая спецификация говорит, что"никогда" или «no-referrer», return «no-referrer».
. Хотя в нем также говорится, чтоАвторы рекомендуют избегать устаревших ключевых слов никогда, по умолчанию и всегда. Предпочтительны ключевые слова no-referrer, no-referrer-when-downgrade и небезопасный URL.
. – MarcG 21 May 2016 в 07:43content = no-referrer
не работает во всех браузерах, тогда как появляетсяcontent = never
работает во всех браузерах, которые поддерживаютno-referrer
а затем некоторые. На данный момент вы, вероятно, должны использоватьcontent = never
. – bbodenmiller 23 November 2016 в 09:22