HTTP реферер (опечатка из ссылающейся [1] ) является необязательным HTTP - поле заголовка , которое идентифицирует адрес веб - страницы (то есть, URI или МРИ ), который связан с запрошенного ресурса. Проверив реферер, новая веб-страница сможет увидеть, откуда исходит запрос.
В наиболее распространенной ситуации это означает, что когда пользователь щелкает гиперссылку в веб-браузере , браузер отправляет запрос на сервер, содержащий целевую веб-страницу. Запрос может включать поле referer, которое указывает последнюю страницу, на которой находился пользователь (ту, на которой он щелкнул ссылку).
Журнал рефереров используется, чтобы позволить веб-сайтам и веб-серверам определять, откуда люди их посещают, в рекламных или статистических целях. [2] Это влечет за собой потерю конфиденциальности для пользователя и может представлять угрозу безопасности .
Поведение по умолчанию, связанное с утечкой реферера, подвергает веб-сайты риску нарушения конфиденциальности и безопасности. [3] Чтобы снизить риски безопасности, браузеры неуклонно сокращают объем информации, отправляемой в referer. С марта 2021 года по умолчанию Chrome , [4] Edge на основе Chromium , Firefox , [5] Safari [ необходима цитата ] по умолчанию отправляют только источник в запросах между источниками.
Этимология
Ошибочное написание реферера было введено в первоначальное предложение компьютерного ученого Филиппа Халлама-Бейкера по включению поля в спецификацию HTTP . [6] Опечатка стала очевидной к моменту ее включения в документ стандартов RFC 1945 по запросу о комментариях ; Соавтор документа Рой Филдинг заметил, что ни "реферер", ни "реферер" с ошибками не распознавались стандартной программой проверки орфографии Unix того периода. [7] "Referer" с тех пор стало широко используемым написанием в отрасли при обсуждении HTTP-рефереров; использование в опечатка не является универсальным, хотя, как правильное написание «ссылающаяся» используется в некоторых веб - спецификации , такие как HTTP заголовок или в модели объекта документа . [3]Referrer-Policy
Подробности
При посещении веб-страницы реферер или ссылающаяся страница - это URL-адрес предыдущей веб-страницы, с которой был выполнен переход по ссылке.
В более общем смысле, реферер - это URL-адрес предыдущего элемента, который привел к этому запросу. Например, реферером для изображения обычно является HTML- страница, на которой оно должно отображаться. Поле реферера - это необязательная часть HTTP-запроса, отправляемого веб-браузером на веб-сервер. [8]
Многие веб-сайты регистрируют рефереров, пытаясь отследить своих пользователей . Большинство программ для анализа веб-журналов может обрабатывать эту информацию. Поскольку информация реферера может нарушить конфиденциальность , некоторые веб-браузеры позволяют пользователю отключить отправку информации реферера. [9] Некоторые прокси-серверы и брандмауэры также отфильтровывают информацию о реферере, чтобы избежать утечки информации о местонахождении закрытых веб-сайтов. Это, в свою очередь, может вызвать проблемы: некоторые веб-серверы блокируют части своего веб-сайта для веб-браузеров, которые не отправляют правильную информацию о реферере, в попытке предотвратить глубокие ссылки или несанкционированное использование изображений ( кража полосы пропускания ). Некоторые прокси-программы имеют возможность назначать адрес верхнего уровня целевого веб-сайта в качестве реферера, что уменьшает эти проблемы, но все же может в некоторых случаях раскрывать последнюю посещенную пользователем веб-страницу.
Многие блоги публикуют информацию о реферере, чтобы ссылаться на людей, которые ссылаются на них, и, следовательно, расширять диалог. Это, в свою очередь, привело к росту спама с реферерами : отправка фальшивой информации о реферере с целью популяризации веб-сайта спамера.
Доступ к информации о реферере можно получить на стороне клиента с помощью document.referrer в JavaScript . [10] Это можно использовать, например, для индивидуализации веб-страницы на основе запроса поисковой системы пользователя. Однако поле реферера не всегда включает ключевые слова для поиска, например, при использовании поиска Google с https. [11]
Реферер скрывается
Большинство веб-серверов ведут журналы всего трафика и записывают реферер HTTP, отправляемый веб-браузером для каждого запроса. Это вызывает ряд проблем с конфиденциальностью, и в результате был разработан ряд систем, предотвращающих отправку веб-серверами действительных URL-адресов. Эти системы работают либо путем очистки поля реферера, либо путем замены его неточными данными. Как правило, пакеты интернет-безопасности очищают данные реферера, в то время как веб-серверы заменяют их ложным URL-адресом, обычно своим собственным. Это поднимает проблему спама-реферера. Технические детали обоих методов довольно согласованы - программные приложения действуют как прокси-сервер и манипулируют HTTP-запросами, в то время как веб-методы загружают веб-сайты во фреймах, заставляя веб-браузер отправлять URL-адрес реферера адреса их веб-сайтов. Некоторые веб-браузеры дают своим пользователям возможность отключить поля реферера в заголовке запроса. [9]
Большинство веб-браузеров не отправляют поле реферера, если им дано указание перенаправить с помощью поля «Обновить». Сюда не входят некоторые версии Opera и многие мобильные веб-браузеры. Однако этот метод перенаправления не одобряется Консорциумом World Wide Web (W3C). [12]
Если доступ к веб-сайту осуществляется через соединение HTTP Secure (HTTPS), а ссылка указывает куда-либо, кроме другого безопасного места, то поле реферера не отправляется. [13]
Стандарт HTML5 добавил поддержку атрибута / значения rel="noreferrer"
, который указывает пользовательскому агенту не отправлять реферер. [14]
Другой метод сокрытия реферера - преобразовать исходный URL-адрес ссылки в URL-адрес на основе схемы URI данных, содержащий небольшую HTML-страницу с мета-обновлением исходного URL-адреса. Когда пользователь перенаправляется со data:
страницы, исходный реферер скрывается.
Версия 1.1 стандартной политики безопасности контента представила новую директиву реферера, которая позволяет больший контроль над поведением браузера в отношении заголовка реферера. В частности, он позволяет веб-мастеру указать браузеру не блокировать реферер вообще, показывать его только при перемещении с тем же источником и т. Д. [15]
Рекомендации
- ^ Горли, Дэвид; Тотти, Брайан; Сэйер, Марджори; Аггарвал, Аншу; Редди, Сайлу (27 сентября 2002 г.). HTTP: полное руководство . ISBN 9781565925090.
- ^ Кырнин, Дженнифер (10.04.2012). «Реферер - Что такое реферер - Как работают рефереры HTTP?» . About.com . Проверено 20 марта 2013 .
- ^ а б "На вашем веб-сайте есть утечка?" . Блог ICO . 2015-09-16. Архивировано из оригинала на 2018-05-24 . Проверено 16 августа 2018 .
- ^ «Политика реферера: по умолчанию - strict-origin-when-cross-origin - Chrome Platform Status» . www.chromestatus.com . Проверено 23 марта 2021 .
- ^ Ли, Дими; Кершбаумер, Кристоф. «Firefox 87 по умолчанию обрезает HTTP-рефереры для защиты конфиденциальности пользователей» . Блог по безопасности Mozilla . Проверено 23 марта 2021 .
- ^ Халлам-Бейкер, Филипп (21 сентября 2000 г.). "Re: Эл Гор - отец Интернета?" . alt.folklore.computers . Проверено 20 марта 2013 .
- ^ Филдинг, Рой (1995-03-09). "Re: referer: (sic)" . ietf-http-wg-старый . Проверено 20 марта 2013 .
- ^ «Протокол передачи гипертекста (HTTP / 1.1): семантика и контент (RFC 7231 § 5.5.2)» . IETF . Июнь 2014 . Проверено 26 июля 2014 .
Поле заголовка "referrer" [sic] позволяет пользовательскому агенту указать ссылку URI для ресурса, из которого был получен целевой URI […]
- ^ а б "Network.http.sendRefererHeader" . MozillaZine . 2007-06-10 . Проверено 27 мая 2015 .
- ^ «Свойство реферера документа HTML DOM» . w3schools.com . Проверено 20 марта 2013 .
- ^ Гундерсен, Брет (2011-10-19). «Влияние зашифрованного поиска Google» . Блог Adobe по цифровому маркетингу . Проверено 17 марта 2021 .
- ^ «Методы HTML для руководства по обеспечению доступности веб-контента 1.0: элемент META» . W3C . 2000-11-06 . Проверено 20 марта 2013 .
- ^ «Протокол передачи гипертекста (HTTP / 1.1): семантика и контент: реферер (RFC 7231 § 5.5.2)» . IETF. Июнь 2014 . Проверено 26 июля 2014 .
Пользовательский агент НЕ ДОЛЖЕН отправлять поле заголовка реферера в незащищенном HTTP-запросе, если ссылающаяся страница была получена с помощью безопасного протокола.
- ^ «4.12 Ссылки - Уровень жизни HTML: 4.12.5.8 Тип ссылки« noreferrer » » . WHATWG . 2016-02-19 . Проверено 19 февраля 2016 .
- ^ «Уровень политики безопасности контента 2» . W3. 2014 . Проверено 8 декабря 2014 .
Внешние ссылки
- RFC 7231: протокол передачи гипертекста (HTTP / 1.1): семантика и контент
- RFC 3987: интернационализированные идентификаторы ресурсов (IRI)
- Политика реферера - черновик редактора W3C