Spec-Zone.ru › HTTP

Политика Referrer

Политика Referrer

Заголовок Referrer-Policy HTTP-заголовка управляет тем, сколько информации о ссылке (отправленной вместе с Referer заголовком) должно быть включено в запросы. Помимо HTTP-заголовка, вы можете установить эту политику в HTML.

Тип заголовка Заголовок ответа
Запрещенное имя заголовка нет

Синтаксис

Referrer-Policy: no-referrer
Referrer-Policy: no-referrer-when-downgrade
Referrer-Policy: origin
Referrer-Policy: origin-when-cross-origin
Referrer-Policy: same-origin
Referrer-Policy: strict-origin
Referrer-Policy: strict-origin-when-cross-origin
Referrer-Policy: unsafe-url

Примечание: Исходное имя заголовка Referer — это орфографическая ошибка слова «referrer». В заголовке Referrer-Policy этой ошибки нет.

Директивы

no-referrer

Заголовок Referer будет опущен: отправленные запросы не содержат никакой информации о ссылке.

no-referrer-when-downgrade

Отправьте источник, путь и строку запроса в Referer, если уровень безопасности протокола остается прежним или улучшается (HTTP→HTTP, HTTP→HTTPS, HTTPS→HTTPS). Не отправляйте заголовок Referer для запросов к менее безопасным местам назначения (HTTPS→HTTP, HTTPS→файл).

origin

Отправьте только источник в заголовке Referer. Например, документ по адресу https://example.com/page.html отправит ссылку https://example.com/.

origin-when-cross-origin

При выполнении запроса из того же источника на том же уровне протокола (HTTP→HTTP, HTTPS→HTTPS) отправьте источник, путь и строку запроса. Отправьте только источник для межсайтовых запросов и запросов к менее безопасным местам назначения (HTTPS→HTTP).

same-origin

Отправьте источник, путь и строку запроса для запросов из того же источника. Не отправляйте заголовок Referer для межсайтовых запросов.

strict-origin

Отправьте только источник, когда уровень безопасности протокола остается прежним (HTTPS→HTTPS). Не отправляйте заголовок Referer на менее безопасные места назначения (HTTPS→HTTP).

strict-origin-when-cross-origin (по умолчанию)

Отправьте источник, путь и строку запроса при выполнении запроса из того же источника. Для межсайтовых запросов отправьте только источник, когда уровень безопасности протокола остается прежним (HTTPS→HTTPS). Не отправляйте заголовок Referer на менее безопасные места назначения (HTTPS→HTTP).

Примечание: Это политика по умолчанию, если политика не указана или указанное значение недействительно (см. пересмотр спецификации ноябрь 2020 года). Ранее значение по умолчанию было no-referrer-when-downgrade.

unsafe-url

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

Предупреждение: Эта политика может раскрыть потенциально конфиденциальную информацию из URL-адресов ресурсов HTTPS небезопасным источникам. Внимательно рассмотрите последствия этого параметра.

Интеграция с HTML

Вы также можете установить политики referrers внутри HTML. Например, вы можете установить политику referrers для всего документа с помощью элемента <meta> с атрибутом name referrer:

<meta name="referrer" content="origin" />

Вы можете указать атрибут referrerpolicy на элементах <a>, <area>, <img>, <iframe>, <script> или <link>, чтобы установить политики referrers для отдельных запросов:

<a href="http://example.com" referrerpolicy="origin">…</a>

Кроме того, вы можете установить отношение ссылки noreferrer на элементах a, area, или link:

<a href="http://example.com" rel="noreferrer">…</a>

Предупреждение: Как видно выше, отношение ссылки noreferrer записывается без дефиса. Когда вы указываете политику referrers для всего документа с элементом <meta>, его следует записывать с дефисом: <meta name="referrer" content="no-referrer">.

Интеграция с CSS

CSS может получать ресурсы, на которые ссылаются таблицы стилей. Эти ресурсы также следуют политике referrers:

  • Внешние таблицы стилей используют политику по умолчанию (strict-origin-when-cross-origin), если она не переопределяется заголовком Referrer-Policy HTTP в ответе таблицы стилей.
  • Для элементов <style> или атрибутов style используется политика referrers родительского документа.

Примеры

no-referrer

Из документа Переход к Использование ссылки
https://example.com/page любой (ссылка не используется)

no-referrer-when-downgrade

Из документа Переход к Использование ссылки
https://example.com/page https://example.com/otherpage https://example.com/page
https://example.com/page https://mozilla.org https://example.com/page
https://example.com/page http://example.com (ссылка не используется)

origin

Из документа Переход к Использование ссылки
https://example.com/page любой https://example.com/

origin-when-cross-origin

Из документа Переход к Использование ссылки
https://example.com/page https://example.com/otherpage https://example.com/page
https://example.com/page https://mozilla.org https://example.com/
https://example.com/page http://example.com/page https://example.com/

same-origin

Из документа Переход к Использование ссылки
https://example.com/page https://example.com/otherpage https://example.com/page
https://example.com/page https://mozilla.org (ссылка не используется)

strict-origin

Из документа Переход к Использование ссылки
https://example.com/page https://mozilla.org https://example.com/
https://example.com/page http://example.com (ссылка не используется)
http://example.com/page любой http://example.com/

strict-origin-when-cross-origin

Из документа Переход по ссылке Используемый referrer
https://example.com/page https://example.com/otherpage https://example.com/page
https://example.com/page https://mozilla.org https://example.com/
https://example.com/page http://example.com (нет referrer)

unsafe-url

Из документа Переход по ссылке Используемый referrer
https://example.com/page?q=123 в любое место https://example.com/page?q=123

Укажите политику резервного копирования

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

Referrer-Policy: no-referrer, strict-origin-when-cross-origin

В приведенном примере no-referrer используется только в том случае, если браузер не поддерживает политику strict-origin-when-cross-origin.

Примечание: Указание нескольких значений поддерживается только в заголовке HTTP Referrer-Policy, а не в атрибуте referrerpolicy.

Настройки/предпочтения, специфичные для браузера

Предпочтения Firefox

Вы можете настроить политику по умолчанию referrer в настройках Firefox. Названия настроек зависят от версии:

  • Firefox версии 59 и выше: network.http.referer.defaultPolicy (и network.http.referer.defaultPolicy.pbmode для частных сетей)
  • Firefox версии от 53 до 58: network.http.referer.userControlPolicy

Все эти настройки принимают те же значения: 0 = no-referrer, 1 = same-origin, 2 = strict-origin-when-cross-origin, 3 = no-referrer-when-downgrade.

Спецификации

Спецификация
Политика referrer
# referrer-policy-header

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet
Referrer-Policy
56
79
50
Нет
43
11.1
56
56
50
43
12
7.2
default_strict-origin-when-cross-origin
85
85
87
Нет
71
15
85
85
87
60
15
14.0
same-origin
61
79
52
Нет
48
11.1
61
61
52
45
12
7.2
strict-origin
61
79
52
Нет
48
11.1
61
61
52
45
12
7.2
strict-origin-when-cross-origin
61
79
52
Нет
48
11.1
61
61
52
45
12
7.2

См. также

  • Безопасность веб-приложений > Заголовок Referer: проблемы с конфиденциальностью и безопасностью
  • HTTP referer в Википедии
  • При использовании Fetch: Request.referrerPolicy
  • Устаревшее Content-Security-Policy's referrer Устаревшее настройка.
  • Политика одинакового происхождения
  • Более строгий контроль над вашими referrer — блог безопасности Mozilla

© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API