Referrer-Policy
A teszt azt nézi, hogy az oldal kifejezetten megadja-e, mennyit árulhat el a böngésző a látogatott címből; ha nem, állíts be Referrer-Policy fejlécet.
Amikor a látogató egy linkre kattint, vagy az oldal betölt egy külső képet vagy szkriptet, a böngésző alapból elküldheti annak a lapnak a címét (Referer fejléc), ahonnan a kérés indult. Ez a cím tartalmazhat útvonalat és keresési paramétereket, akár olyan adatot is, amit nem szeretnél kiadni egy külső félnek. A Referrer-Policy fejléc megmondja a böngészőnek, mennyit küldhet el. A riportban a teszt súlyossága alacsony.
Hogyan mérjük
Szekció neve “Hogyan mérjük”A riport a főoldal válaszát nézi (átirányítások követése után a végső válaszét).
- Megfelelő: van
Referrer-Policyválaszfejléc nem üres értékkel, vagy a HTML-ben van<meta name="referrer" …>tag. - Hiba: egyik sincs.
A teszt csak azt nézi, hogy az oldal kifejezetten megad szabályt, az értéket nem értékeli. Tehát egy kevésbé védő érték (például unsafe-url, amely a teljes címet elküldi) is megfelel. A tesztet az sem befolyásolja, hogy az egyes linkeken van-e saját referrerpolicy attribútum.
Érdemes tudni: az MDN szerint a böngészők alapértelmezése szabály hiányában a strict-origin-when-cross-origin, vagyis a tényleges kockázat kicsi akkor is, ha a fejlécet nem állítod be. A teszt ettől függetlenül a kifejezett megadást kéri, mert így az oldal viselkedése nem függ a böngésző alapértelmezésétől.
Hogyan javítsd
Szekció neve “Hogyan javítsd”A riport kártyája a strict-origin-when-cross-origin értéket adja, amelyet a Mozilla is ajánl. Az MDN szerint ennél az értéknél:
- azonos eredetű kéréskor a böngésző az eredetet, az útvonalat és a lekérdezést is elküldi,
- másik eredet felé csak az eredetet (a domaint), és csak ha a biztonsági szint nem romlik (https → https),
- https oldalról http felé nem küld semmit.
Az alábbi kódok a fejlécet egyedül állítják be; ha a riport több hiányzó fejlécet jelez, ugyanabba a blokkba kerülhet mindegyik.
nginx
Szekció neve “nginx”Az nginx server blokkjába. Ha egy location blokkban is van add_header, oda is be kell írni, mert az nginx csak akkor örökli a fejlécet, ha az adott szinten nincs add_header.
add_header Referrer-Policy "strict-origin-when-cross-origin" always;Apache (.htaccess)
Szekció neve “Apache (.htaccess)”<IfModule mod_headers.c> Header always set Referrer-Policy "strict-origin-when-cross-origin"</IfModule>Cloudflare
Szekció neve “Cloudflare”Rules → Overview → Create rule → Response Header Transform Rule:
Set static: Referrer-Policy = strict-origin-when-cross-originWordPress
Szekció neve “WordPress”Új fájlba: wp-content/mu-plugins/biztonsagi-fejlecek.php (Bedrockon: web/app/mu-plugins/biztonsagi-fejlecek.php):
<?phpadd_action( 'send_headers', function () { header( 'Referrer-Policy: strict-origin-when-cross-origin' );} );Ha a válaszfejléchez nem férsz hozzá, az egész dokumentumra érvényes szabályt meta taggel is megadhatod; a riport ezt is elfogadja. A tag a lap <head> részébe kerül.
<meta name="referrer" content="strict-origin-when-cross-origin">Hogyan ellenőrizd
Szekció neve “Hogyan ellenőrizd”Futtasd újra a riportot. Parancssorból:
curl -sI https://example.com/ | grep -i referrer-policyHa külső szolgáltatás (például fizetési átjáró vagy statisztika) a hivatkozó címtől függ, a beállítás után próbáld ki azokat is.
Készült: