Атрибут referrerpolicy тега <link>


Описание

Атрибут referrerpolicy для тега <link> определяет, какая информация о реферере (источнике перехода) будет отправляться при загрузке ресурса. Это важный инструмент для управления конфиденциальностью и безопасностью.

Пример использования:
<!-- Без информации о реферере --> <link rel="stylesheet" href="https://cdn.example.com/style.css" referrerpolicy="no-referrer"> <!-- Только источник без полного URL --> <link rel="preload" as="script" href="app.js" referrerpolicy="origin"> <!-- Полная информация в пределах того же происхождения --> <link rel="preconnect" href="https://api.example.com" referrerpolicy="same-origin">

Допустимые значения:

Значение Описание Когда использовать
no-referrer Полное отключение отправки Referer Максимальная приватность
no-referrer-when-downgrade По умолчанию (не отправлять при переходе с HTTPS на HTTP) Безопасность при переходе на менее защищенные ресурсы
origin Только домен без пути (https://example.com) Баланс между аналитикой и приватностью
origin-when-cross-origin Полный URL для того же origin, только домен для других Оптимальный вариант для большинства случаев
same-origin Полный URL только для запросов в пределах origin Когда нужно скрыть информацию от внешних ресурсов
strict-origin Только домен, и только для HTTPS→HTTPS Безопасность + базовая аналитика
strict-origin-when-cross-origin Полный URL для same-origin, домен для cross-origin HTTPS, ничего для HTTP Рекомендуемое значение по умолчанию
unsafe-url Всегда полный URL (включая фрагменты) Когда необходима полная информация о реферере

Рекомендации по использованию:

  • Для CDN-ресурсов используйте origin или no-referrer
  • Для аналитических скриптов может потребоваться unsafe-url
  • Для максимальной безопасности - same-origin
  • Проверяйте влияние на серверную аналитику
  • Сочетайте с CSP и другими мерами безопасности

Примеры для разных сценариев:

<!-- Максимальная приватность --> <link rel="stylesheet" href="https://cdn.example.com/secret.css" referrerpolicy="no-referrer"> <!-- Оптимальный баланс --> <link rel="preload" as="script" href="app.js" referrerpolicy="strict-origin-when-cross-origin"> <!-- Для аналитики --> <link rel="preconnect" href="https://stats.example.com" referrerpolicy="unsafe-url">

Ошибки и проверка:

<!-- Неправильно: опечатка в значении --> <link rel="stylesheet" href="style.css" referrerpolicy="no-ref"> <!-- Неправильно: конфликт с CSP --> <link rel="stylesheet" href="https://external.com/style.css" referrerpolicy="no-referrer" crossorigin> <!-- Правильно: валидное значение --> <link rel="preload" as="image" href="img.jpg" referrerpolicy="no-referrer-when-downgrade">

Примечание: Атрибут referrerpolicy особенно важен для защиты конфиденциальности пользователей и управления передачей данных между сайтами. Для комплексного решения сочетайте его с политикой безопасности контента (CSP) и настройками сервера.