Tovább a tartalomhoz

Válaszfejlécek beállítása

A riport javítási kártyája, amely egy helyen adja a hiányzó HSTS, X-Content-Type-Options, Referrer-Policy és Cross-Origin-Opener-Policy fejléc beállítását.

A riport Javítások fülén az „Állíts be N válaszfejlécet” kártya egyetlen kódrészletben gyűjti össze azokat a biztonsági fejléceket, amelyek az oldalról hiányoznak, vagy rossz az értékük. Ez az oldal azt mutatja meg, melyik fejlécet mikor teszi bele a kártya, milyen értékkel, és hogyan állítod be platformonként.

A kártya szövege: „Ezek a biztonsági fejlécek hiányoznak, vagy rossz az értékük. Egy helyen, együtt állítod be őket.” Ha csak egy fejléc hiányzik: „Ez a biztonsági fejléc hiányzik, vagy rossz az értéke. Egy sorral beállíthatod.”

A kártya akkor jelenik meg, ha az alábbi négy teszt közül legalább egy hibás. A kártya címében szereplő szám (N) a hibás tesztek darabszáma, a kártya súlyossága a bennük lévők közül a legsúlyosabb.

Fejléc Értéke a kártyán A fejléc részletes leírása
Strict-Transport-Security max-age=31536000 (egy év, másodpercben) HSTS
X-Content-Type-Options nosniff X-Content-Type-Options
Referrer-Policy strict-origin-when-cross-origin Referrer-Policy
Cross-Origin-Opener-Policy same-origin-allow-popups Cross-Origin-Opener-Policy

A kódrészletben csak azok a fejlécek szerepelnek, amelyeknek a tesztje az adott oldalon hibás. Ha például csak a HSTS hiányzik, a kártya egyetlen sort ad.

Két közeli fejléc külön kártyát kap, mert nekik saját kódjuk van: a Content-Security-Policy és a Clickjacking-védelem.

SaaS-platformokon (például webáruház- vagy weboldal-készítő szolgáltatásokon) a kártya nem jelenik meg, mert ott az oldal tulajdonosa nem éri el a szerver fejléceit.

A kártya nem külön tesztet jelent: a fenti négy teszt hibájából épül. Hogy melyik teszt mikor bukik, azt az adott fejléc oldala írja le. Röviden, a kód szerint:

  • HSTS: hibás, ha nincs Strict-Transport-Security fejléc, vagy a max-age értéke 15 768 000 másodpercnél (kb. fél év) kisebb. A kártya ennél bőkezűbb értéket ad: egy évet.
  • X-Content-Type-Options: hibás, ha a fejléc első értéke nem nosniff.
  • Referrer-Policy: hibás, ha nincs Referrer-Policy fejléc és nincs <meta name="referrer"> tag sem.
  • Cross-Origin-Opener-Policy: hibás, ha nincs ilyen fejléc.

A fejléceket a szerver, a CDN vagy a WordPress adhatja hozzá. Válaszd azt a helyet, ahol az oldalad válaszát a legkorábban állíthatod, és ne add hozzá kétszer ugyanazt a fejlécet.

A lenti kódrészletek mind a négy fejléc együttes beállítását mutatják; hagyd ki belőlük azokat, amelyek nem hiányoznak.

Az nginx server blokkjába:

nginx
add_header Strict-Transport-Security "max-age=31536000" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Cross-Origin-Opener-Policy "same-origin-allow-popups" always;

Az nginx dokumentációja szerint az add_header direktívák csak akkor öröklődnek az előző szintről, ha az adott szinten nincs saját add_header. Ezért ha egy location blokkban is van add_header, oda is be kell másolni ezeket a sorokat. Az always paraméter a hibaválaszokra is felteszi a fejlécet.

A webroot .htaccess fájljába:

.htaccess
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Cross-Origin-Opener-Policy "same-origin-allow-popups"
</IfModule>

Az <IfModule> burok miatt a sorok nem okoznak 500-as hibát, ha a mod_headers nincs betöltve; ilyenkor viszont a fejlécek nem is jelennek meg, ezért ellenőrizd. Az always az Apache dokumentációja szerint a hibaválaszokra is érvényes.

Cloudflare: Rules, Overview, Create rule, Response Header Transform Rule. Minden fejlécnek külön műveletet adj (a „Set static” a meglévő azonos nevű fejlécet felülírja):

Cloudflare
Set static: Strict-Transport-Security = max-age=31536000
Set static: X-Content-Type-Options = nosniff
Set static: Referrer-Policy = strict-origin-when-cross-origin
Set static: Cross-Origin-Opener-Policy = same-origin-allow-popups

Új fájlba, a wp-content/mu-plugins/ mappába (Bedrocknál web/app/mu-plugins/), például valaszfejlecek.php néven. A WordPress dokumentációja szerint a must-use bővítmények a wp-adminból nem kapcsolhatók ki, a fájlt törölve szűnik meg a hatásuk:

wp-content/mu-plugins/valaszfejlecek.php
<?php
add_action( 'send_headers', function () {
header( 'Strict-Transport-Security: max-age=31536000' );
header( 'X-Content-Type-Options: nosniff' );
header( 'Referrer-Policy: strict-origin-when-cross-origin' );
header( 'Cross-Origin-Opener-Policy: same-origin-allow-popups' );
} );

Futtasd újra a riportot: ha a négy fejléc rendben van, a kártya eltűnik a Javítások fülről. Parancssorban:

Terminál
curl -sI "https://pelda.hu/?v=1" | grep -iE '^(strict-transport-security|x-content-type-options|referrer-policy|cross-origin-opener-policy):'

Mind a négy sort látnod kell a fenti értékekkel.

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