Defaults.Exposed › Поправки › Referrer-Policy
Как да поправите Referrer-Policy
Referrer-Policy е еднолинейна инструкция, предавана от вашия уебсайт на браузъра на всеки посетител, контролираща колко от вашия уеб адрес пътува с тях, когато кликнат върху линк към друг сайт. Без нея пълният адрес на страницата, на която са — думи за търсене, номера на акаунти, линкове за нулиране, вътрешни пътеки на страниците — тихо се предава на следващия сайт, на който попадат, включително рекламодатели, анализни фирми и навсякъде другаде, към което линкът сочи.
Заключение за вашия бизнес: Всеки път, когато посетителят кликне върху изходящ линк, реклама или споделен ресурс, браузърът им може да предаде пълния адрес на вашата страница на дестинацията — и ако адресите ви носят заявки за търсене, идентификатори на клиенти, номера на поръчки или еднократни линкове, вие изтичате клиентски данни на трети страни, над които нямате контрол. Това е проблем за защита на данните, приеман сериозно от регулаторите, тихо нарушено обещание за поверителност и оценена пропаст, маркирана от IT екипа на клиент по време на дю дилиджънс.
Какво може да ви струва това
- Клиент попълва формуляр или прави търсене, след което кликва върху изходящ линк или реклама — и адресът на страницата, заедно с това, което са въвели, се предава директно на рекламодател или анализна фирма, с когото никога не е трябвало да го споделите.
- Линковете за нулиране на парола и потвърждение на акаунт понякога носят таен токен в уеб адреса; без тази заглавка, кликването върху произволен линк на тази страница може да предаде целия адрес — включително токена — на外部сайт.
- Частни вътрешни пътеки на страници (административни зони, клиентски-ексклузивни страници, ценови нива, линкове към документи) се разкриват на всяка трета страна, след която посетителите кликват, предавайки на конкуренти и наблюдатели карта на вашия сайт, която никога не трябва да виждат.
- Прегледът за сигурност или одитът за поверителност на клиент сканира вашия сайт, не вижда Referrer-Policy и го регистрира като неуспех при минимизиране на данните — вид находка, спираща договор или сертификация.
- Личните данни попадат в ръцете на обработващи лица, с които нямате споразумение, превръщайки петминутен пропуск в подлежащо на докладване нарушение на защитата на данните.
Защо има значение. Браузърите, оставени на себе си, са приказливи: по подразбиране те казват на следващия уебсайт откъде е дошъл посетителят, често включително пълния адрес на страницата. За брошурен сайт това може да е безвредно, но в момента, в който адресите ви съдържат нещо лично — дума за търсене, идентификатор на поръчка, имейл в линк, частна пътека — тази настройка по подразбиране тихо го изтича на външни страни. Referrer-Policy е единственото настройване, казващо на браузърите да спрат прекомерното споделяне. Тя е оценена проверка в таблото ви, носеща реални точки, съответства директно на задълженията за минимизиране на данните по закона за поверителността и е една от стандартните заглавки за сигурност, очаквани от всеки профessionален преглед.
Какво е това, с прости думи
Всеки път, когато посетител на вашия уебсайт кликне върху линк към друг сайт — изходящ линк, банерна реклама, „сподели това”, дори шрифт или изображение, заредено от другаде — браузърът тихо прикрепя бележка, казваща коя от вашите страници са дошли. Тази бележка се казва referer.
Използвана разумно, refererа е безвредна и дори полезна: по нея другите сайтове знаят, че трафикът е дошъл от вас и захранва много честни анализи. Уловката е в поведението по подразбиране. Оставен неуправляван, браузърът не просто казва „дошли са от your-business.com” — той често предава пълния адрес на точната страница, включително всичко след нимето на домейна. А уеб адресите носят много повече, отколкото хората осъзнават: думи за търсене, въведени на вашия сайт, номера на поръчки и акаунти, пътека към частна страница само за членове, дори еднократни тайни токени в имейли за нулиране на парола и потвърждение.
Referrer-Policy е единична инструкция, изпращана от вашия уебсайт до браузъра, казваща колко от тази бележка може да сподели. Можете да кажете да сподели само нимето на домейна ви, само с другите страници на вашия собствен сайт или нищо изобщо. Мислете за нея като за разликата между предаването на непознат на целия ви домашен адрес с ежедневното ви разписание прикрепено, спрямо просто казването в кой град живеете.
Това е едно от малкото семейство „заглавки за сигурност” — кратки инструкции, давани от вашия сайт на браузъра на всеки посетител. Не променя как изглежда или работи вашият сайт. Просто спира браузъра от прекомерно споделяне от ваше ниме.
Какво може да ви струва това
Ето конкретни, ежедневни начини, по които липсваща или разрешителна Referrer-Policy ухапва реалните бизнеси. Нито едно от тях не изисква хакер — те се случват автоматично, всеки ден, при нормална употреба.
-
Изтеклото търсене. Клиент търси на вашия сайт нещо чувствително — медицински продукт, услуга, свързана с дълг, сравнение на конкуренти — и думата за търсене попада в адреса на страницата. После кликва върху изходящ линк или реклама на страницата с резултати. Рекламодателят сега получава вашия адрес с думата за търсене в него, научавайки точно какво е търсил вашият клиент. Вие никога не сте се съгласили да споделите това и не можете да го върнете.
-
Разкритият линк за нулиране. Много системи поставят таен еднократен токен в адреса на страниците за нулиране на парола, потвърждение на имейл или „магическо влизане.” Ако тази страница съдържа изходящ линк или ресурс от трета страна, пълният адрес — включително токена — може да бъде предаден на外部сайт. В най-лошия случай това дава на трета страна ключовете за акаунт.
-
Картата на сайта, раздадена безплатно. Вашите вътрешни пътеки на страниците разкриват структурата ви: /admin, /enterprise-pricing, /clients/acme, /downloads/private-report. Без тази заглавка, всеки外部 сайт, след когото вашите посетители кликват, получава тези пътеки. Конкурентите научават вашите ценови нива и продуктови линии; скреперите научават кои страници да целят.
-
Нежеланото споделяне на данни. Законът за поверителността очаква да знаете накъде отиват личните данни на клиентите ви и да имате споразумение. Изтичането на адреси на страници, съдържащи идентификатори на клиенти или имейл адреси, на рекламни мрежи и анализни фирми — без споразумение и без съгласие — е точно видът неконтролиран поток на данни, превръщащ рутинен одит в находка, а находка в подлежащо на докладване нарушение.
-
Сделката, спираща при дю дилиджънс. Когато екипът за сигурност на по-голям клиент ви преглежда, липсващите стандартни заглавки за сигурност са бърза, автоматизирана отметка. Виждането на Referrer-Policy отсъстваща им казва, че основната хигиена за поверителност никога не е настроена — и онова впечатление оцветява всичко останало в прегледа.
Какво всъщност е
По подразбиране браузърите следват поведение, грубо еквивалентно на „strict-origin-when-cross-origin” в съвременните версии — но не можете да разчитате на това, тъй като по-стари браузъри, вградени изгледи и определени конфигурации все пак се подпират на изтичане на повече. Единственият начин да сте сигурни е да зададете политиката изрично. Когато го направите, избирате едно правило от кратък списък. Важните:
- no-referrer — не споделяйте нищо. Следващият сайт не е информиран откъде е дошъл посетителят. Максимална поверителност; може да намали анализите на препращане.
- same-origin — споделяйте пълния адрес само когато посетителят се движи между страниците на вашия собствен сайт; не споделяйте нищо с外部сайтове.
- strict-origin-when-cross-origin — препоръчителната настройка по подразбиране. В рамките на вашия собствен сайт пълната пътека се споделя; с外部сайтове се споделя само голото ниме на домейна ви (и нищо изобщо при преминаване от защитена страница към незащитена).외部страните научават, че трафикът е дошъл от вас, но никога частните детайли след домейна ви.
- origin — винаги споделяйте само нимето на домейна ви, дори в рамките на собствения ви сайт.
И двете стойности, които да се избягват, тъй като таблото ги третира не по-добре от нямане на заглавка:
- unsafe-url — споделяйте пълния адрес с всеки, винаги. Това е най-лошият случай в една дума.
- no-referrer-when-downgrade — старото поведение по подразбиране на браузъра; все пак изпраща пълния адрес до другите защитени сайтове, изтичайки всичко описано по-горе.
Как изглежда „добро”: заглавка Referrer-Policy е налице и зададена на ограничителна стойност — за повечето бизнеси strict-origin-when-cross-origin. Това поддържа анализите на препращане работещи, като гарантира, че нищо след нимето на домейна ви никога не достига外部сайт.
Как да го поправите (безплатно, около 5 минути)
Предайте този раздел на вашия IT специалист, уеб разработчик или поддръжка на хостинг — поправката е безплатна, един ред е и няма да счупи вашия сайт. Тук няма рискова въвеждане в употреба: за разлика от някои настройки за сигурност, разумна Referrer-Policy не може да спре линковете или страниците ви от работа. Тя само съкращава споделеното с другите сайтове.
Целта: задайте заглавка на отговора Referrer-Policy със стойност strict-origin-when-cross-origin (или по-строга стойност, ако предпочитате да споделяте още по-малко).
Cloudflare (без код — най-лесно ако го използвате):
Табло → вашия домейн → Rules → Transform Rules → Modify Response Header → Създайте правило → 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 е най-чист и се прилага навсякъде наведнъж.
След прилагане: заредете вашия сайт и стартирайте отново проверката, или използвайте инструментите за разработчик на браузъра (Раздел Мрежа → кликнете върху основния документ → Заглавки на отговора), за да потвърдите, че Referrer-Policy: strict-origin-when-cross-origin е налице.
Чести грешки
- Задаване на разрешителна стойност и предположение, че се брои.
unsafe-urlиno-referrer-when-downgradeи двете все пак изтичат пълния адрес. Таблото ги оценява с нула — идентично на нямане на заглавка. Ако заглавката е налице, но точките не са, това е почти винаги причината. - Задаване само на началната страница. Заглавката трябва да се изпраща на всяка страница, защото изтичанията се случват на страниците с резултати от търсене, акаунт и нулиране — не на началната страница. Задайте я на нивото на сървъра, CDN или Cloudflare, така че автоматично да се прилага в целия сайт.
- Задаване й само в HTML тагове
<meta>. Таг<meta name="referrer">работи в някои случаи, но не всички, и лесно може да бъде несъответстващо на страниците. Задаването й като правилна заглавка на отговора (методите по-горе) е надеждният подход. - Позволяване на един слой да замени друг. Ако и вашият оригинален сървър, и вашата CDN задават заглавката с различни стойности, резултатът може да е непредсказуем. Изберете едно място за управлението й — обикновено CDN или Cloudflare, ако имате — и поддържайте останалото последователно.
- Третирането й като заместител за изключване на данните от URL адресите. Заглавката ограничава щетите, но по-чистият дългосрочен навик е да не поставяте тайни и лични данни в уеб адреси на първо място. Използвайте заглавката сега; повдигнете хигиената на URL адресите с вашия разработчик като последващо действие.
Кратка бележка за свързаните заглавки
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 е две кликвания без никакъв код. Предайте им раздела 'Как да го поправите' по-долу. Безплатно е, отнема около пет минути и за разлика от някои настройки за сигурност няма да счупи нищо на вашия сайт.
Какво означава изобщо 'referer' тук?
Когато някой кликне върху линк от вашата страница към друг уебсайт, браузърът изпраща бележка, казваща коя от вашите страници са дошли — тази бележка се казва referer. Тя е истински полезна за честни анализи. Проблемът е в поведението по подразбиране. Оставен неуправляван, браузърът не просто казва 'дошли са от your-business.com' — той често предава **пълния адрес на точната страница**, включително всичко след нимето на домейна. А уеб адресите носят много повече, отколкото хората осъзнават: думи за търсене, въведени на вашия сайт, номера на поръчки и акаунти, пътека към частна страница само за членове, дори еднократни тайни токени в имейли за нулиране на парола и потвърждение. Referrer-Policy ви позволява да съкратите бележката до само нимето на вашия домейн или да я изключите, така че нищо чувствително не изтича.
Наистина ли си заслужава да се занимавам с това, ако сайтът ми не обработва плащания?
Почти сигурно да. Не ви трябва каса, за да имате лична информация в уеб адресите си — полета за търсене, формуляри за контакт, акаунт страници, линкове към документи и имейли за нулиране на парола рутинно поставят данни в адресната лента. И дори без никакви лични данни изобщо, изтичането на вашите вътрешни пътеки на страници на всеки외部 сайт, след когото посетителите ви кликват, дава на конкуренти и скрепери безплатна карта на вашия сайт. Поправката не струва нищо и пет минути, така че има малко причини да я пропуснете.
Може ли включването на това да счупи сайта или анализите ми?
Не. Това е една от безопасните заглавки — контролира само колко детайли от адреса се споделят с другите сайтове, не дали линковете работят. Препоръчителната настройка все пак изпраща нимето на домейна ви на外部 сайтове, така че легитимните анализи на препращането продължават да работят; просто спира пълния частен адрес да придружава. Не е нужен режим само за наблюдение и нищо за тестване на staging първо.
Това проблем за закона за поверителността ли е или просто нещо хубаво за имане?
Може да е истински проблем за спазване. Правилата за защита на данните изискват да събирате и споделяте само минималните необходими лични данни и да знаете накъде отиват данните ви. Ако адресите ви носят лични идентификатори и ги изтичате на рекламодатели или анализни фирми без споразумение, това е неуспех при минимизиране на данните, разпознаван от одитори и регулатори. За повечето бизнеси тази заглавка е евтин, конкретен начин за затваряне на тази пропаст.
Засяга ли това оценката ни или е просто съвет?
Засяга оценката ви. Проверката на Referrer-Policy е оценена и носи до 15 точки в категорията Уеб сигурност. Липсваща заглавка е маркирана с средна сериозност. Отбележете един капан: задаването на заглавката на разрешителна стойност като 'unsafe-url' или 'no-referrer-when-downgrade' получава нула точки — същото като без заглавка — защото тези стойности все още изтичат пълния адрес. За да спечелите точките, имате нужда от правилно ограничителна стойност като 'strict-origin-when-cross-origin'.