stringtranslate.com

HTTP-реферер

В HTTP " Referer " (неправильное написание " Referrer " [1] ) — это необязательное поле заголовка HTTP , которое идентифицирует адрес веб-страницы (т. е. URI или IRI ), с которой был запрошен ресурс. Проверяя реферер, сервер, предоставляющий новую веб-страницу, может увидеть, откуда исходил запрос.

В наиболее распространенной ситуации это означает, что когда пользователь нажимает на гиперссылку в веб-браузере , заставляя браузер отправлять запрос на сервер, содержащий целевую веб-страницу, запрос может включать поле Referer, которое указывает последнюю страницу, на которой находился пользователь (ту, где он нажал на ссылку).

Веб-сайты и веб-серверы регистрируют содержимое полученного поля Referer для идентификации веб-страницы, с которой пользователь перешел по ссылке, в рекламных или статистических целях. [2] Это влечет за собой потерю конфиденциальности для пользователя и может представлять угрозу безопасности . [3] Чтобы снизить риски безопасности, браузеры неуклонно сокращают объем информации, отправляемой в Referer. По состоянию на март 2021 года Chrome , [4] Edge на основе Chromium , Firefox , [5] Safari [6] по умолчанию отправляют только источник в запросах между источниками, удаляя все, кроме доменного имени.

Этимология

Неправильное написание слова referrer было введено в первоначальном предложении ученого-компьютерщика Филлипа Халлама-Бейкера о включении поля заголовка «Referer» в спецификацию HTTP . [7] [8] Неправильное написание было установлено на камне к моменту (май 1996 г.) его включения в документ стандартов Запроса комментариев RFC 1945 [9] (который «отражает общее использование протокола, называемого «HTTP/1.0 » ' в то время); соавтор документа Рой Филдинг заметил в марте 1995 г., что «ни один (referer, ни referrer) не понимается» стандартной проверкой орфографии Unix того периода. [10] С тех пор «Referer» стало широко используемым написанием в отрасли при обсуждении HTTP-рефереров; однако использование неправильного написания не является универсальным, поскольку правильное написание «referrer» используется в некоторых веб-спецификациях, таких как Referrer-Policyзаголовок HTTP или Document Object Model . [3]

Подробности

При посещении веб-страницы реферером или ссылающейся страницей является URL-адрес предыдущей веб-страницы, с которой был выполнен переход по ссылке.

В более общем смысле реферер — это URL предыдущего элемента, который привел к этому запросу. Например, реферер для изображения — это, как правило, HTML- страница, на которой оно должно быть отображено. Поле реферера — это необязательная часть HTTP-запроса, отправляемого веб-браузером на веб-сервер. [11]

Многие веб-сайты регистрируют рефереры как часть своей попытки отслеживать своих пользователей . Большинство программного обеспечения для анализа веб-журналов могут обрабатывать эту информацию. Поскольку информация о реферере может нарушать конфиденциальность , некоторые веб-браузеры позволяют пользователю отключать отправку информации о реферере. [12] Некоторые прокси-серверы и брандмауэры также отфильтровывают информацию о реферере, чтобы избежать утечки местоположения непубличных веб-сайтов. Это, в свою очередь, может вызвать проблемы: некоторые веб-серверы блокируют части своего веб-сайта для веб-браузеров, которые не отправляют правильную информацию о реферере, в попытке предотвратить глубокое связывание или несанкционированное использование изображений ( кража полосы пропускания ). Некоторое прокси-программное обеспечение имеет возможность указывать адрес верхнего уровня целевого веб-сайта в качестве реферера, что уменьшает эти проблемы, но все еще может в некоторых случаях разглашать последнюю посещенную пользователем веб-страницу.

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

Можно получить доступ к информации о реферере на стороне клиента, используя document.referrer в JavaScript . [13] Это может быть использовано, например, для индивидуализации веб-страницы на основе поискового запроса пользователя. Однако поле реферера не всегда включает ключевые слова поиска, например, при использовании поиска Google с HTTPS. [14]

Скрытие реферера

Большинство веб-серверов ведут журналы всего трафика и регистрируют HTTP-реферер, отправленный веб-браузером для каждого запроса. Это вызывает ряд проблем с конфиденциальностью, и в результате было разработано несколько систем, предотвращающих отправку веб-серверами настоящего URL-адреса реферера. Эти системы работают либо путем заполнения поля реферера, либо путем замены его неточными данными. Как правило, пакеты интернет-безопасности заполняют данные реферера, в то время как веб-серверы заменяют их ложным URL-адресом, обычно своим собственным. Это поднимает проблему спама реферера. Технические детали обоих методов довольно последовательны — программные приложения действуют как прокси-сервер и манипулируют HTTP-запросом, в то время как веб-методы загружают веб-сайты во фреймы, заставляя веб-браузер отправлять URL-адрес реферера своего веб-адреса. Некоторые веб-браузеры предоставляют своим пользователям возможность отключать поля реферера в заголовке запроса. [12]

Большинство веб-браузеров не отправляют поле реферера, когда им предписано перенаправить с помощью поля «Обновить». Это не относится к некоторым версиям Opera и многим мобильным веб-браузерам. Однако этот метод перенаправления не рекомендуется Консорциумом Всемирной паутины (W3C). [15]

Если доступ к веб-сайту осуществляется через защищенное соединение HTTP (HTTPS) и ссылка указывает куда-либо, кроме другого защищенного местоположения, то поле реферера не отправляется. [11]

В стандарт HTML5 добавлена ​​поддержка атрибута/значения rel="noreferrer", который предписывает пользовательскому агенту не отправлять реферер. [16]

Другой метод скрытия реферера заключается в преобразовании исходного URL-адреса ссылки в URL-адрес на основе схемы Data URI, содержащий небольшую страницу HTML с метаобновлением исходного URL-адреса. Когда пользователь перенаправляется со data:страницы, исходный реферер скрывается.

Стандарт Content Security Policy версии 1.1 представил новую директиву referrer , которая позволяет больше контролировать поведение браузера в отношении заголовка referrer. В частности, она позволяет веб-мастеру указать браузеру не блокировать referrer вообще, показывать его только при перемещении с тем же источником и т. д. [17]

Ссылки

  1. Гурли, Дэвид; Тотти, Брайан; Сэйер, Марджори; Аггарвал, Аншу; Редди, Сайлу (27 сентября 2002 г.). HTTP: Полное руководство. "O'Reilly Media, Inc.". ISBN 9781565925090.
  2. ^ Кирнин, Дженнифер (2012-04-10). "Referrer - Что такое Referrer - Как работают HTTP Referrers?". About.com . Архивировано из оригинала 2013-05-29 . Получено 2013-03-20 .
  3. ^ ab "У вашего сайта есть утечка?". Блог ICO . 2015-09-16. Архивировано из оригинала 2018-05-24 . Получено 2018-08-16 .
  4. ^ "Политика реферера: по умолчанию strict-origin-when-cross-origin - статус платформы Chrome". www.chromestatus.com . Получено 23.03.2021 .
  5. ^ Ли, Дими; Кершбаумер, Кристоф (22 марта 2021 г.). «Firefox 87 по умолчанию обрезает HTTP-рефереры для защиты конфиденциальности пользователей». Блог безопасности Mozilla . Получено 23.03.2021 .
  6. ^ Виландер, Джон (10.12.2019). «Предотвращение отслеживания Предотвращение отслеживания». Блог WebKit .
  7. ^ Халлам-Бейкер, Филлип (21.09.2000). "Re: Является ли Эл Гор отцом Интернета?". Группа новостей : alt.folklore.computers . Получено 20.03.2013 .
  8. ^ Халлам-Бейкер, Филлип. "Re: Referer: (sic)". Архивы публичных списков рассылки W3C . Архивировано из оригинала 2024-02-19 . Получено 19 февраля 2024 г.
  9. ^ Бернерс-Ли, Т.; Филдинг , Р .; Фристик, Х. (май 1996 г.). Протокол передачи гипертекста — HTTP/1.0. IETF . doi : 10.17487/RFC1945 . RFC 1945.
  10. ^ Филдинг, Рой (1995-03-09). "Re: referer: (sic)". ietf-http-wg-old (список рассылки) . Получено 2013-03-20 .
  11. ^ ab Fielding, R.; Reschke, J. (июнь 2014 г.). Fielding, R.; Reschke, J. (ред.). Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content: referrer (RFC 7231 § 5.5.2). IETF. sec. 5.5.2. doi : 10.17487/RFC7231 . S2CID  14399078. RFC 7231 . Получено 26 июля 2014 г. .
  12. ^ ab "Network.http.sendRefererHeader". MozillaZine . 2007-06-10 . Получено 2015-05-27 .
  13. ^ "Свойство реферера документа HTML DOM". W3Schools . Получено 20.03.2013 .
  14. ^ Гундерсен, Брет (2011-10-19). «Влияние зашифрованного поиска Google». Блог Adobe Digital Marketing . Получено 2021-03-17 .
  15. ^ "HTML-методы для рекомендаций по обеспечению доступности веб-контента 1.0: элемент META". W3C . 2000-11-06 . Получено 2013-03-20 .
  16. ^ "4.12 Ссылки — HTML Living Standard: 4.12.5.8 Тип ссылки "noreferrer"". WHATWG . 2016-02-19 . Получено 2016-02-19 .
  17. ^ "Политика безопасности контента, уровень 2". W3. 2014. Получено 2014-12-08 .

Внешние ссылки