HTTPQUERY
Русский

Referrer-Policy

Применение

Когда браузер переходит по ссылке или загружает подресурс, он обычно отправляет заголовок Referer, содержащий URL исходной страницы. Заголовок Referrer-Policy даёт владельцам сайтов контроль над тем, какая часть URL передаётся и отправляется ли заголовок Referer вообще.

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

Разделённый запятыми список политик служит цепочкой запасных вариантов. Браузер выбирает последнюю политику в списке, которую он поддерживает, что делает развёртывание с заделом на будущее простым и понятным.

Установка политики

Существует три механизма задания политики реферера:

Атрибуты на уровне элемента переопределяют метатег уровня страницы, который, в свою очередь, переопределяет HTTP-заголовок. HTTP-заголовок — самый надёжный способ, поскольку политика вступает в силу до разбора какого-либо HTML.

no-referrer

Директива no-referrer полностью подавляет заголовок Referer. Ни с одним запросом, исходящим со страницы, не передаётся никакой информации об URL.

no-referrer-when-downgrade

Директива no-referrer-when-downgrade отправляет полный URL (источник, путь и строку запроса) для запросов в пределах того же протокола. Когда запрос понижает уровень безопасности (с HTTPS на HTTP), заголовок Referer опускается.

origin

Директива origin отправляет только ту часть URL, которая относится к источнику (схема, хост и порт). Путь и строка запроса удаляются из каждого запроса.

origin-when-cross-origin

Директива origin-when-cross-origin отправляет полный URL для запросов в пределах того же источника. Для межисточниковых запросов или при понижении протокола отправляется только источник.

same-origin

Директива same-origin отправляет полный URL для запросов в пределах того же источника и полностью опускает заголовок Referer для межисточниковых запросов.

strict-origin

Директива strict-origin отправляет только источник и только тогда, когда уровень безопасности протокола остаётся прежним или повышается (с HTTPS на HTTPS либо с HTTP на HTTP). Понижение протокола подавляет заголовок.

strict-origin-when-cross-origin

Директива strict-origin-when-cross-origin отправляет полный URL для запросов в пределах того же источника, отправляет только источник для межисточниковых запросов на том же уровне безопасности и опускает заголовок при понижении протокола. Это политика по умолчанию в современных браузерах, когда Referrer-Policy не задана.

unsafe-url

Директива unsafe-url отправляет полный URL (источник, путь и строку запроса) с каждым запросом независимо от назначения и протокола. Она раскрывает больше всего информации и редко уместна в продакшене.

Пример

Строгая политика по умолчанию, отправляющая только источник при межисточниковых переходах:

Referrer-Policy: strict-origin-when-cross-origin

Конфигурация с упором на приватность, подавляющая все данные о реферере:

Referrer-Policy: no-referrer

Цепочка запасных вариантов, в которой браузер выбирает strict-origin при поддержке и иначе откатывается к no-referrer:

Referrer-Policy: no-referrer, strict-origin