Заголовки: Referrer-Policy
Заголовок Referrer-Policy
Baseline Широко доступно *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна во всех браузерах с января 2020 года.
* Поддержка некоторых частей этой функции может различаться.
HTTP-заголовок Referrer-Policy ответа управляет тем, какой объём информации о реферере (передаваемой в заголовке 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→file). origin-
Отправлять в заголовке
Refererтолько источник. Например, документ с адресомhttps://example.com/page.htmlотправит реферерhttps://example.com/. origin-when-cross-origin-
При выполнении одноисточникового запроса отправлять источник, путь и строку запроса. Для межисточниковых запросов и запросов к менее защищённым адресатам (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
Политику реферера можно также задавать в HTML. Например, чтобы установить политику реферера для всего документа, используйте элемент <meta> с атрибутом name, равным referrer:
<meta name="referrer" content="origin" />
Атрибут referrerpolicy можно указать у элементов <a>, <area>, <img>, <iframe>, <script> или <link>, чтобы задать политику реферера для отдельных запросов:
<a href="http://example.com" referrerpolicy="origin">…</a>
Кроме того, можно задать отношение ссылки noreferrer для элементов a, area или link:
<a href="http://example.com" rel="noreferrer">…</a>
Предупреждение: Как видно выше, отношение ссылки noreferrer записывается без дефиса. Если вы задаёте политику реферера для всего документа с помощью элемента <meta>, его следует записать с дефисом: <meta name="referrer" content="no-referrer">.
Интеграция с CSS
CSS может загружать ресурсы, на которые ссылаются таблицы стилей. На эти ресурсы также распространяется политика реферера:
Примеры
>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 | (реферер отсутствует) |
| http://example.com/page | куда угодно | http://example.com/page |
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
| Исходный документ | Переход к | Используемый реферер |
|---|---|---|
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 | (реферер отсутствует) |
unsafe-url
| Исходный документ | Переход к | Используемый реферер |
|---|---|---|
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
Политику реферера, используемую по умолчанию, можно настроить в параметрах 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 | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
Referrer-Policy |
56 | 79 | 50 | 43 | 11.1 | 56 | 50 | 43 | 12 | 7.2 | 56 | 12 |
default_strict-origin-when-cross-origin |
85 | 85 | 87 | 71 | 15 | 85 | 87 | 60 | 15 | 14.0 | 85 | 15 |
no-referrer-when-downgrade |
56 | 79 | 50–92 | 43 | 11.1–13 | 56 | 50–92 | 43 | 12–13 | 7.2 | 56 | 12–13 |
origin-when-cross-origin |
56 | 79 | 50–92 | 43 | 11.1–13 | 56 | 50–92 | 43 | 12–13 | 7.2 | 56 | 12–13 |
same-origin |
61 | 79 | 52 | 48 | 11.1 | 61 | 52 | 45 | 12 | 7.2 | 61 | 12 |
strict-origin |
61 | 79 | 52 | 48 | 11.1 | 61 | 52 | 45 | 12 | 7.2 | 61 | 12 |
strict-origin-when-cross-origin |
61 | 79 | 52 | 48 | 11.1 | 61 | 52 | 45 | 12 | 7.2 | 61 | 12 |
unsafe-url |
56 | 79 | 50–92 | 43 | 11.1–13 | 56 | 50–92 | 43 | 12–13 | 7.2 | 56 | 12–13 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Referrer-Policy