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.”
Mikor jelenik meg a kártya
Szekció neve “Mikor jelenik meg a kártya”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.
Hogyan mérjük
Szekció neve “Hogyan mérjük”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-Securityfejléc, vagy amax-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-Policyfejléc és nincs<meta name="referrer">tag sem. - Cross-Origin-Opener-Policy: hibás, ha nincs ilyen fejléc.
Hogyan javítsd
Szekció neve “Hogyan javítsd”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.
nginx
Szekció neve “nginx”Az nginx server blokkjába:
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.
Apache (.htaccess)
Szekció neve “Apache (.htaccess)”A webroot .htaccess fájljába:
<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
Szekció neve “Cloudflare”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):
Set static: Strict-Transport-Security = max-age=31536000Set static: X-Content-Type-Options = nosniffSet static: Referrer-Policy = strict-origin-when-cross-originSet static: Cross-Origin-Opener-Policy = same-origin-allow-popupsWordPress
Szekció neve “WordPress”Ú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:
<?phpadd_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' );} );Hogyan ellenőrizd
Szekció neve “Hogyan ellenőrizd”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:
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: