Tovább a tartalomhoz

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.

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-Policy vá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.

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.

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.

nginx
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
.htaccess
<IfModule mod_headers.c>
Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

Rules → Overview → Create rule → Response Header Transform Rule:

Cloudflare
Set static: Referrer-Policy = strict-origin-when-cross-origin

Új fájlba: wp-content/mu-plugins/biztonsagi-fejlecek.php (Bedrockon: web/app/mu-plugins/biztonsagi-fejlecek.php):

biztonsagi-fejlecek.php
<?php
add_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.

HTML
<meta name="referrer" content="strict-origin-when-cross-origin">

Futtasd újra a riportot. Parancssorból:

Terminál
curl -sI https://example.com/ | grep -i referrer-policy

Ha 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:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások