Атрибут 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) и настройками сервера.