Defaults.Exposed

Defaults.ExposedИсправления › Referrer-Policy

Как исправить Referrer-Policy

Referrer-Policy — это однострочная инструкция, которую ваш сайт передаёт браузеру каждого посетителя, управляя тем, сколько вашего веб-адреса уходит вместе с ним при переходе по ссылке на другой сайт. Без неё полный адрес страницы, на которой он был, — со всеми поисковыми запросами, номерами аккаунтов, ссылками для сброса пароля, внутренними путями — тихо передаётся следующему сайту, на который он попадает, включая рекламодателей, аналитические компании и куда угодно, куда ведёт ссылка.

Главное для вашего бизнеса: Каждый раз, когда посетитель нажимает на исходящую ссылку, рекламу или общий ресурс, его браузер может передать назначению полный адрес вашей страницы — и если ваши адреса несут поисковые запросы, ID клиентов, номера заказов или одноразовые ссылки, вы сливаете данные клиентов третьим сторонам, которые вам не подконтрольны. Это проблема защиты данных, которую регуляторы воспринимают всерьёз, тихо нарушенное обещание о приватности и оценочный пробел, который служба безопасности клиента отметит при проверке.

Во что это может вам обойтись

Почему это важно. Браузеры, предоставленные самим себе, болтливы: по умолчанию они сообщают следующему сайту, откуда только что пришёл посетитель, часто включая полный адрес страницы. Для сайта-визитки это может быть безвредно, но как только ваши адреса содержат что-то личное — поисковый запрос, ID заказа, email в ссылке, приватный путь — это умолчание тихо его сливает. Referrer-Policy — это единственная настройка, велящая браузерам прекратить лишнюю болтовню. Это оценочная проверка вашей карточки, стоящая реальных баллов, она напрямую соответствует обязанностям по минимизации данных по закону о приватности и относится к стандартным заголовкам безопасности, которые ожидает увидеть любая профессиональная проверка.

Что это, простыми словами

Каждый раз, когда посетитель на вашем сайте нажимает ссылку на другой сайт — исходящую ссылку, баннер, «поделиться», даже шрифт или изображение, загружаемое извне, — его браузер тихо прикладывает заметку о том, с какой вашей страницы он пришёл. Эта заметка называется referrer (источник перехода).

При разумном использовании referrer безвреден и даже полезен: именно так другие сайты узнают, что трафик пришёл от вас, и на нём держится немало честной аналитики. Загвоздка в поведении по умолчанию. Без управления браузер не просто говорит «они пришли с your-business.com» — он часто отдаёт полный адрес конкретной страницы, включая всё после имени домена. А веб-адреса несут куда больше, чем люди осознают: введённые на вашем сайте поисковые запросы, номера заказов и аккаунтов, путь к приватной странице только для участников, даже одноразовые секретные токены в ссылках для сброса пароля и подтверждения.

Referrer-Policy — это единственная инструкция, которую ваш сайт отправляет браузеру и которая говорит, сколько из этой заметки разрешено передавать. Вы можете велеть передавать только имя домена, только другим страницам вашего же сайта или вообще ничего. Думайте об этом как о разнице между тем, чтобы дать незнакомцу свой полный домашний адрес с приложенным расписанием дня, и тем, чтобы просто назвать ему город, где вы живёте.

Это один из небольшого семейства «заголовков безопасности» — коротких инструкций, которые ваш сайт даёт браузеру каждого посетителя. Он не меняет, как ваш сайт выглядит или работает. Он лишь не даёт браузеру делиться лишним от вашего имени.

Во что это может вам обойтись

Вот конкретные, повседневные способы, которыми отсутствующая или разрешительная Referrer-Policy бьёт по реальным бизнесам. Ни один из них не требует хакера — они происходят автоматически, каждый день, при обычном использовании.

Что это на самом деле

По умолчанию браузеры в современных версиях ведут себя примерно как «strict-origin-when-cross-origin» — но полагаться на это нельзя, потому что старые браузеры, встроенные webview и некоторые конфигурации всё ещё откатываются к более широкому сливу. Единственный способ быть уверенным — задать политику явно. Когда вы это делаете, вы выбираете одно правило из короткого списка. Значимые из них:

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

Как выглядит «хорошо»: заголовок Referrer-Policy присутствует и задан в ограничивающее значение — для большинства бизнесов это strict-origin-when-cross-origin. Это сохраняет работу реферальной аналитики, гарантируя, что ничего после имени домена никогда не достигает внешнего сайта.

Как это исправить (бесплатно, около 5 минут)

Передайте этот раздел вашему ИТ-специалисту, веб-разработчику или поддержке хостинга — исправление бесплатно, это единственная строка, и оно не сломает ваш сайт. Рискованного развёртывания тут нет: в отличие от некоторых настроек безопасности, разумная Referrer-Policy не может помешать работе ваших ссылок или страниц. Она лишь урезает то, чем делятся с другими сайтами.

Цель: задать заголовок ответа Referrer-Policy со значением strict-origin-when-cross-origin (или более строгим, если предпочитаете делиться ещё меньше).

Cloudflare (без кода — проще всего, если вы его используете): Dashboard → ваш домен → Rules → Transform Rules → Modify Response Header → Create rule → Set static → имя заголовка Referrer-Policy, значение strict-origin-when-cross-origin → применить ко всем входящим запросам → Deploy.

Google Workspace / Microsoft 365: они управляют вашей почтой, а не сайтом, поэтому заголовок ставится там, где реально размещён ваш сайт (ваш веб-хост, CDN или сервер) — не в админке Workspace или 365. Определите хост и используйте подходящий вариант ниже.

Nginx:

add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Apache (в конфиге сайта или .htaccess):

Header always set Referrer-Policy "strict-origin-when-cross-origin"

IIS (web.config):

<httpProtocol><customHeaders>
  <add name="Referrer-Policy" value="strict-origin-when-cross-origin" />
</customHeaders></httpProtocol>

Node / Express:

app.use((req, res, next) => { res.setHeader('Referrer-Policy', 'strict-origin-when-cross-origin'); next(); });

WordPress / распространённые хосты: большинство управляемых WordPress и шаред-хостов позволяют добавить заголовки ответа либо через плагин безопасности, либо через панель «headers» в панели управления хостингом, либо через сниппет .htaccess выше. Если вы за Cloudflare, метод Cloudflare самый чистый и применяется везде сразу.

После применения: откройте сайт и перезапустите проверку или используйте инструменты разработчика браузера (вкладка Network → клик по основному документу → Response Headers), чтобы убедиться, что Referrer-Policy: strict-origin-when-cross-origin присутствует.

Частые ошибки

Краткая заметка о связанных заголовках

Referrer-Policy соседствует с небольшим набором других заголовков веб-безопасности, которые мы проверяем, — Content-Security-Policy, X-Frame-Options, X-Content-Type-Options и несколько продвинутых cross-origin-заголовков. Они защищают разное, поэтому наличие одного не покрывает другие. Если ваша Referrer-Policy отсутствует, стоит попросить того, кто её исправляет, заодно подтвердить, что прочие стандартные заголовки на месте, — они обычно настраиваются в том же одном месте, а это ничего не стоит.

Коротко

Referrer-Policy — это самое дешёвое и безопасное исправление приватности в вашей карточке: одна строка, около пяти минут, без риска что-либо сломать и бесплатно. Оно не даёт браузерам ваших посетителей тихо отдавать приватные адреса ваших страниц — и любые персональные данные в них — каждому внешнему сайту, на который они переходят. Задайте strict-origin-when-cross-origin, убедитесь, что он живёт на каждой странице, — и пробел средней серьёзности с его 15 баллами закрыт.

Частые вопросы

Я не технарь — это правда то, с чем я смогу справиться?

Да, и это одно из самых простых исправлений во всей карточке. Это единственная строка, добавляемая тем, кто ведёт ваш сайт или хостинг, а на сервисах вроде Cloudflare — это пара кликов вообще без кода. Передайте им раздел «Как это исправить» ниже. Это бесплатно, занимает около пяти минут и, в отличие от некоторых настроек безопасности, ничего на вашем сайте не сломает.

Что вообще значит здесь «referrer»?

Когда кто-то нажимает ссылку с вашей страницы на другой сайт, его браузер прикладывает заметку о том, с какой страницы он пришёл, — эта заметка и называется referrer (источник перехода). Для честной аналитики она действительно полезна. Проблема в том, что по умолчанию заметка часто включает ваш полный адрес страницы, а не только имя домена. Если в этом адресе есть что-то приватное — оно тоже передаётся. Referrer-Policy позволяет урезать заметку до одного имени домена или отключить её, чтобы ничего чувствительного не утекало.

Стоит ли с этим возиться, если мой сайт не принимает платежи?

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

Не сломает ли включение этого мой сайт или аналитику?

Нет. Это один из безопасных заголовков — он управляет лишь тем, сколько деталей адреса передаётся другим сайтам, а не работоспособностью ссылок. Рекомендуемая настройка по-прежнему передаёт внешним сайтам имя вашего домена, поэтому законная реферальная аналитика продолжает работать; она лишь не даёт уйти полному приватному адресу. Тестовый режим только-наблюдения не нужен, и предварительно тестировать на стенде нечего.

Это вопрос закона о приватности или просто приятное дополнение?

Это может быть настоящим вопросом соответствия. Правила защиты данных требуют собирать и передавать только минимум необходимых персональных данных и знать, кому они уходят. Если ваши адреса несут персональные идентификаторы, а вы сливаете их рекламодателям или аналитическим компаниям без заключённого соглашения, это нарушение минимизации данных, которое признают аудиторы и регуляторы. Для большинства бизнесов этот заголовок — дешёвый и конкретный способ закрыть пробел.

Влияет ли это на нашу оценку или это просто совет?

Влияет на оценку. Проверка Referrer-Policy оценивается и стоит до 15 баллов в категории веб-безопасности. Отсутствующий заголовок помечается средней серьёзностью. Учтите одну ловушку: установка заголовка в разрешительное значение вроде «unsafe-url» или «no-referrer-when-downgrade» даёт ноль баллов — то же, что отсутствие заголовка, — потому что эти значения всё равно сливают полный адрес. Чтобы заработать баллы, нужно правильно ограничивающее значение вроде «strict-origin-when-cross-origin».