- A HSTS, az X-Frame-Options, a Referrer-Policy és a Permissions-Policy alacsony kockázattal bevezethető, a CSP külön projektet érdemel.
- A fejléceket a szerver vagy a CDN szintjén érdemes kiküldeni, mert a bővítményes megoldás a gyorsítótárazott oldalakra és a statikus fájlokra gyakran nem hat.
- Egy túl szigorú CSP csendben állítja le a mérőkódokat, ezért élesítés előtt a Content-Security-Policy-Report-Only fejléccel gyűjts adatot.
- A HSTS-t rövid max-age értékkel indítsd, és a preload listára csak akkor jelentkezz, ha minden aldomained tartósan HTTPS-en fut.
- A biztonsági fejlécek nem igazolt rangsorolási tényezők, a hasznuk a látogatók védelme és a megbízható, feltöretlen oldal.
A WordPress-oldalak biztonságáról többnyire a frissítések, a jelszavak és a mentések jutnak eszünkbe. A biztonsági HTTP-fejlécek ehhez képest csendes réteget adnak. Nem a szervert védik, a látogató böngészőjének mondják meg, mit engedhet meg az oldaladnak és mit nem. Ebben a cikkben végigmegyünk az öt leggyakoribb fejlécen, megmutatjuk, hogyan nézheted meg a mostani állapotot, hol érdemes beállítani őket, és milyen sorrendben vezesd be őket úgy, hogy közben ne törjön el a mérés vagy a beágyazott tartalom.

A szövegben három jelölést használunk. A Hivatalosan igazolt állítás szabványon vagy gyártói dokumentáción alapul, a Saját tapasztalat a napi WordPress-üzemeltetési munkánkból jön, a Szakmai feltételezés pedig megalapozott, de nem bizonyított következtetés.
Mit csinálnak a biztonsági HTTP-fejlécek, és miért érdemes foglalkozni velük WordPress alatt?
A biztonsági HTTP-fejlécek a szerver válaszával együtt érkező utasítások, amelyek a böngésző viselkedését szigorítják. Megszabhatják például, hogy az oldal csak titkosított kapcsolaton töltődjön be, honnan futhat rajta szkript, és beágyazhatja-e más webhely keretbe.
Hivatalosan igazolt: ezek a fejlécek a böngészőben érvényesülnek, tehát a feltört bővítményt vagy a gyenge admin jelszót nem pótolják. Azt a kárt csökkentik, amit egy már bejutott kártékony kód vagy egy megtévesztő külső oldal a látogatónál okozni tud.
WordPress alatt azért van ennek külön súlya, mert egy átlagos oldal sok külső forrásból tölt be kódot. A sablon, az oldalépítő, a mérőkódok, a betűkészletek, a chat és a térkép mind más-más domainről érkezik. Minél több a külső forrás, annál nagyobb a támadási felület, és annál több munka egy szigorú szabályrendszer összeállítása.
Melyik fejléc mit véd?
Az öt leggyakoribb fejléc öt különböző kockázatot kezel, ezért nem helyettesítik egymást. Az alábbi áttekintés mindegyiknél megadja a jellemző értéket is.
Strict-Transport-Security (HSTS)
A HSTS arra utasítja a böngészőt, hogy a megadott ideig kizárólag HTTPS-en keresztül kapcsolódjon a domainhez. Ezzel kivédi azt a helyzetet, amikor valaki egy nyilvános wifin a titkosítatlan első kérést téríti el. Jellemző érték: max-age=31536000; includeSubDomains, ahol a szám egy évnek megfelelő másodperc. Hivatalosan igazolt: a böngésző csak HTTPS-válaszban érkező HSTS-fejlécet vesz figyelembe, a sima HTTP-n küldöttet eldobja.
Content-Security-Policy (CSP)
A CSP egy engedélyezőlista arról, hogy az oldal honnan tölthet be szkriptet, stíluslapot, képet, keretet, és hová küldhet adatot. Ez a leghatékonyabb védelem a befecskendezett szkriptek (XSS) ellen, és egyben a legnehezebben beállítható fejléc. A legfontosabb direktívák a default-src, a script-src, a style-src, az img-src, a connect-src, a frame-src és a frame-ancestors.
X-Frame-Options
Ez a fejléc megtiltja, hogy az oldaladat más webhely keretbe ágyazza, így véd a kattintáseltérítés (clickjacking) ellen. A két használható érték a DENY és a SAMEORIGIN. Hivatalosan igazolt: a korszerű megfelelője a CSP frame-ancestors direktívája, az ALLOW-FROM értéket pedig a mai böngészők már nem támogatják. A két megoldás egyszerre is küldhető.
Referrer-Policy
Azt szabályozza, mennyi információt ad át a böngésző a hivatkozó oldalról, amikor a látogató továbbkattint. A strict-origin-when-cross-origin érték külső oldal felé csak a domaint küldi el, a teljes URL-t nem, így a címben szereplő keresőkifejezés vagy azonosító nem szivárog ki. A mai böngészők alapértelmezése is ez, a kifejezett beállítás mégis hasznos, mert egységessé teszi a viselkedést.
Permissions-Policy
Itt azt adod meg, mely böngészőfunkciókat használhatja az oldal és a benne lévő beágyazott tartalom. Ilyen a kamera, a mikrofon és a helymeghatározás. Egy tipikus céges oldalon elég ennyi: camera=(), microphone=(), geolocation=(). Ha az oldalon van „közelben lévő üzlet” kereső, a helymeghatározást a saját domainre engedd (geolocation=(self)). Hivatalosan igazolt: a fejléc böngészőtámogatása nem egységes, a Chromium-alapú böngészők kezelik a legteljesebben.
Az öt mellé érdemes felvenni az X-Content-Type-Options: nosniff fejlécet is. Ez megakadályozza, hogy a böngésző kitalálja egy fájl típusát, és például egy feltöltött képet szkriptként futtasson.
Hogyan ellenőrizheted, milyen fejléceket küld most az oldalad?
A meglévő állapotot három módon nézheted meg, a böngésző fejlesztői eszközeivel, parancssorból vagy egy online elemzővel. Mindhárom ugyanazt a szerverválaszt mutatja, csak más kényelmi szinten.
- Böngésző: nyisd meg a fejlesztői eszközöket (F12), válaszd a Network fület, töltsd újra az oldalt, kattints a legelső, dokumentum típusú kérésre, és nézd meg a Response Headers részt.
- Parancssor: a
curl -I https://pelda.huparancs csak a fejléceket kéri le. Futtasd le a főoldalra, egy aloldalra és egy képfájlra is. - Online elemző: a Security Headers és az MDN HTTP Observatory betűjeles értékelést ad, és felsorolja a hiányzó fejléceket.
Saját tapasztalat: a leggyakoribb meglepetés az, hogy a főoldal megkapja a fejléceket, a gyorsítótárból kiszolgált aloldalak vagy a 404-es oldal viszont nem. Ezért ne elégedj meg egyetlen URL ellenőrzésével. Az online elemzők osztályzatát kezeld tájékozódási pontként. Egy jól működő, szűkebb szabályrendszer többet ér, mint egy A+ értékelés, amely mellett nem megy a mérés.
Hol állíthatod be a fejléceket: tárhely, .htaccess, Cloudflare vagy bővítmény?
A fejléceket ott érdemes kiküldeni, ahol minden válaszra rákerülnek, vagyis a webszerver vagy a CDN szintjén. A bővítmény kényelmes, de a lefedettsége a leggyengébb.
Tárhely és .htaccess
Apache és LiteSpeed szerveren a .htaccess fájlba írhatsz, ha a mod_headers modul be van kapcsolva. Két példasor:
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Az always kulcsszó azért kell, hogy a hibaoldalak is megkapják a fejlécet. Nginx alatt nincs .htaccess, ott a szerverkonfigurációba kerül az add_header utasítás, szintén always paraméterrel. Hivatalosan igazolt: Nginx alatt egy beágyazott blokkban megadott add_header felülírja a szülő blokkból örökölt fejléceket, emiatt a statikus fájlokra külön is vissza kell írni őket. Osztott tárhelyen a kezelőfelület gyakran kínál HSTS-kapcsolót. Ha Nginx fut és nincs hozzáférésed a konfigurációhoz, a tárhelyszolgáltató ügyfélszolgálata tudja beállítani.
Cloudflare
A Cloudflare a HSTS-t külön kapcsolóval kezeli az SSL/TLS beállítások között, a többi fejlécet pedig a válaszfejlécet módosító szabályokkal (Transform Rules) adhatod hozzá. Az előnye, hogy a peremhálózaton minden válaszra rákerül, a gyorsítótárazottra is. Arra figyelj, hogy ugyanazt a fejlécet ne küldje a szerver és a Cloudflare is eltérő értékkel. Két különböző CSP esetén a böngésző mindkettőt érvényesíti, vagyis a szigorúbb metszet lép életbe.
Bővítmény
A fejléckezelő bővítmények PHP-ból, a WordPress send_headers horgán keresztül dolgoznak. Saját tapasztalat: ebből két korlát következik. A statikus fájlokra (kép, CSS, JS) a fejléc nem kerül rá, és ha egy oldalgyorsító a kész HTML-t a PHP megkerülésével szolgálja ki, a gyorsítótárazott oldalakról is lemaradhat. Bővítményt akkor válassz, ha a szerverhez nincs hozzáférésed, és utána a fenti három módszerrel ellenőrizd az eredményt.
Milyen mellékhatást okozhat egy túl szigorú CSP a mérőkódokra, a chatre vagy a beágyazott térképre?
A túl szigorú CSP látható hibaüzenet nélkül blokkolja azt a külső forrást, amely nincs az engedélyezőlistán. Az oldal szépen betöltődik, közben a mérés leáll, a chat ablak nem jelenik meg, a térkép helyén pedig üres doboz marad.
- Mérőkódok: a Google Tag Manager és a GA4 a
script-srcmellett aconnect-srcés azimg-srcdirektívában is engedélyt igényel, mert az adatküldés külön domainre megy. A Tag Managerben lévő egyedi HTML-címkék soron belüli szkriptként futnak, ezeket a CSP nonce vagy'unsafe-inline'nélkül letiltja. A Meta Pixel szintén külön szkript- és képforrást használ. - Chat: a chat widgetek jellemzően szkriptet, stíluslapot, keretet és folyamatos (WebSocket) kapcsolatot is nyitnak. Ha a
connect-srclistáról hiányzik awss://kezdetű cím, a buborék megjelenik, az üzenet viszont nem megy el. - Térkép és videó: a beágyazott Google Térkép és a YouTube-videó a
frame-srcdirektívában kér helyet. A reCAPTCHA-val védett űrlap szkript- és keretforrást is igényel. - Betűkészletek: a külső betűkészlet a
style-srcés afont-srclistában is szerepeljen, különben az oldal tartalék betűtípusra vált. - WordPress-admin és oldalépítők: a szerkesztőfelület sok soron belüli szkriptet és stílust használ. Saját tapasztalat: a szigorú szabályt érdemes csak a nyilvános oldalakra alkalmazni, az admin felületet pedig külön kezelni.
Hivatalosan igazolt: a pontos domainlistát a Google a Tag Platform dokumentációjában közli, és időnként módosítja. A blokkolt forrásokat a böngésző konzolja (Console fül) soronként kiírja, onnan olvasható ki, mit kell még engedélyezni. A csendes mérésleállás azért veszélyes, mert a hirdetési rendszerek konverzió nélkül maradnak, és a hibát sokszor csak hetekkel később, a riportból veszi észre valaki.
Milyen sorrendben érdemes bevezetni a fejléceket report-only módból indulva?
A biztonságos sorrend az alacsony kockázatú fejlécekkel kezd, a HSTS-t lépcsőzetesen szigorítja, a CSP-t pedig megfigyelő üzemmódban indítja. Így minden lépés után van idő ellenőrizni, és egy hiba gyorsan visszavonható.
- Kiinduló állapot rögzítése. Mentsd el a mostani fejléceket, és írd össze, milyen külső szolgáltatások futnak az oldalon (mérés, chat, térkép, videó, űrlapvédelem, betűkészlet, fizetési kapu).
- Alacsony kockázatú fejlécek. Kapcsold be az
X-Content-Type-Options, aReferrer-Policy, azX-Frame-Options: SAMEORIGINés aPermissions-Policyfejlécet. Ha az oldaladat szándékosan ágyazza be egy partner, előbb egyeztess vele. - HSTS rövid idővel. Indíts
max-age=300értékkel, vagyis öt perccel. Ha minden rendben, emeld egy hétre, majd egy évre. - includeSubDomains. Csak akkor add hozzá, ha minden aldomain (levelező webfelület, régi teszt, belső rendszer) érvényes tanúsítvánnyal fut.
- CSP report-only módban. Küldd ki a
Content-Security-Policy-Report-Onlyfejlécet a tervezett szabállyal és jelentési végponttal (report-uri, illetvereport-to). Ilyenkor a böngésző semmit nem blokkol, csak jelenti, mit blokkolna. - Adatgyűjtés és finomítás. Gyűjts jelentéseket legalább egy-két hétig, hogy a ritkábban látogatott oldalak és a kampányidőszak is belekerüljön. Egészítsd ki a listát a jogos forrásokkal, a böngészőbővítmények okozta zajt pedig szűrd ki.
- Élesítés. Cseréld a fejléc nevét
Content-Security-Policy-ra. A report-only változat párhuzamosan is futhat egy szigorúbb szabállyal, így a következő szigorítás is kockázat nélkül tesztelhető. - HSTS preload. Ez legyen a legutolsó lépés. Hivatalosan igazolt: a preload listára kerüléshez legalább egyéves
max-age,includeSubDomainséspreloadkell, a listáról való lekerülés pedig hónapokig tarthat.
Hivatalosan igazolt: a report-only üzemmód csak valódi HTTP-fejlécként működik, HTML meta elemben nem, és a frame-ancestors direktívát a böngésző szintén figyelmen kívül hagyja a meta elemben. Kiinduló szabálynak sok WordPress-oldalon a default-src 'self' és a szükséges külső domainek listája szolgál. A soron belüli szkriptekhez első körben a legtöbben megengedik az 'unsafe-inline' értéket, ami gyengíti a védelmet, a nonce-alapú megoldás viszont WordPress alatt fejlesztői munkát kíván.
Számít-e mindez a keresőknek és az AI-válaszmotoroknak?
A biztonsági fejlécek közvetlen rangsorolási hatására nincs hivatalos megerősítés. Hivatalosan igazolt: a Google a HTTPS-t régóta enyhe rangsorolási jelként kezeli, a feltört, kártékony kódot terjesztő oldalakat pedig figyelmeztetéssel jelölheti meg a találati listán.
Szakmai feltételezés: a fejlécek közvetett haszna az, hogy csökkentik egy sikeres szkriptbefecskendezés esélyét, így segíthetik megőrizni az oldal megbízhatóságát a látogatók, a keresők és az AI-asszisztensek szemében. A fordított irányra is figyelj. Ha a CSP a saját megjelenítő szkriptjeidet blokkolja, a keresőrobot is hiányos oldalt láthat, ezért élesítés után nézd meg a Search Console URL-ellenőrzőjében a renderelt változatot. Helyezést vagy idézettséget egyik beállítás sem garantál.
Mit ellenőrizz élesítés után?
Az élesítés utáni ellenőrzés azt igazolja, hogy a fejlécek minden választípusra rákerültek, és közben semmi nem tört el. A lista tíz perc alatt végigjárható.
- A fejlécek megjelennek a főoldalon, egy aloldalon, a 404-es oldalon és egy statikus fájlon.
- Bejelentkezés nélkül, gyorsítótárból kiszolgált oldalon is ott vannak.
- A böngésző konzolja nem jelez CSP-sértést a legfontosabb oldaltípusokon.
- A GA4 valós idejű nézete mutatja a saját látogatásodat, a Tag Manager előnézete pedig az elsülő címkéket.
- Egy tesztűrlap elmegy, a konverzió megérkezik a hirdetési fiókba.
- A chat, a térkép, a videó és a süti-hozzájárulási sáv megjelenik és működik.
- A WordPress-admin, az oldalépítő és a médiatár hibátlanul használható.
- Ugyanaz a fejléc nem érkezik kétszer, eltérő értékkel.
Új bővítmény, új mérőkód vagy sablonváltás után ismételd meg az ellenőrzést, mert a CSP engedélyezőlistája nem követi magától a változásokat.
Források és további olvasnivalók
- MDN Web Docs: HTTP-fejlécek referenciája (Strict-Transport-Security, Content-Security-Policy, X-Frame-Options, Referrer-Policy, Permissions-Policy)
- W3C: Content Security Policy Level 3, Referrer Policy és Permissions Policy specifikáció
- IETF RFC 6797: HTTP Strict Transport Security
- OWASP Secure Headers Project és OWASP HTTP Headers Cheat Sheet
- Google Search Central: a HTTPS mint rangsorolási jel, JavaScript-alapú oldalak renderelése
- Google Tag Platform dokumentáció: Content Security Policy útmutató a Tag Managerhez és a GA4-hez
- Cloudflare dokumentáció: HSTS-beállítás és válaszfejléc-módosító szabályok
- WordPress Developer Resources: a send_headers művelet és a wp_headers szűrő
- Apache HTTP Server dokumentáció (mod_headers) és Nginx dokumentáció (add_header)
Gyakori kérdések
Elég egy bővítmény a biztonsági fejlécek beállításához?
Sok esetben működik, de a bővítmény PHP-ból küldi a fejléceket, ezért a statikus fájlokra és a PHP megkerülésével kiszolgált, gyorsítótárazott oldalakra gyakran nem hat. Ha van hozzáférésed a szerverhez vagy CDN-t használsz, ott érdemes beállítani, a bővítmény után pedig mindig ellenőrizd több URL-en az eredményt.
Mi történik, ha elrontom a HSTS beállítását?
Ha hosszú max-age értéket adsz meg, és közben valamelyik aldomained nem érhető el HTTPS-en, a látogatók böngészője a megadott ideig nem engedi megnyitni azt. Ezért érdemes néhány perces értékkel kezdeni, lépcsőzetesen emelni, az includeSubDomains és a preload kapcsolót pedig csak alapos ellenőrzés után hozzáadni.
Mire jó a Content-Security-Policy-Report-Only fejléc?
Megfigyelő üzemmódban futtatja a tervezett szabályt. A böngésző semmit nem blokkol, de jelenti a megadott végpontra és a konzolra, mit blokkolna élesben. Így a látogatók zavarása nélkül derül ki, mely külső forrásokat kell még engedélyezned.
Miért állhat le a Google Analytics mérés a CSP bevezetése után?
A mérőkód betöltése és az adatküldés külön domaineken történik, így a script-src mellett a connect-src és az img-src direktívában is engedélyezni kell a Google forrásait. Ha valamelyik hiányzik, az oldal hibaüzenet nélkül működik tovább, az adat viszont nem érkezik meg. A blokkolt kéréseket a böngésző konzolja mutatja meg.
Kell még X-Frame-Options, ha a CSP-ben van frame-ancestors?
A korszerű böngészők a frame-ancestors direktívát követik, amely rugalmasabb is. Az X-Frame-Options megtartása a régebbi böngészők miatt továbbra is hasznos, és a kettő gond nélkül küldhető egyszerre, ha ugyanazt a szándékot fejezik ki.
Javítják a biztonsági fejlécek a Google-helyezést?
Közvetlen rangsorolási hatásukra nincs hivatalos megerősítés. A HTTPS enyhe rangsorolási jel, a fejlécek pedig a feltörés következményeit mérsékelhetik, ami közvetve segítheti az oldal megbízhatóságának megőrzését. Helyezést egyik beállítás sem garantál.
Források és további olvasnivalók
Ezen az oldalon a hivatalosan igazolt információt elsődleges forrásokból építjük fel; a saját tapasztalatot és a szakmai becslést mindig külön jelöljük a szövegben.