Az X-Frame-Options egy HTTP-válaszfejléc, amely megmondja a böngészőnek, hogy az oldalad betölthető-e iframe-be vagy frame-be. A célja a clickjacking elleni védelem: azt akadályozza meg, hogy valaki láthatatlan keretben az oldaladra ültesse a felhasználót, és így kattintsa vele végig a saját űrlapodat.
Hogyan működik
A szerver minden HTML-válasszal elküldi a fejlécet, a böngésző pedig betartja. Két értéke él ma a gyakorlatban:
DENY: semmilyen oldal nem ágyazhatja be, még te magad sem.
SAMEORIGIN: csak azonos eredetű (protokoll + domain + port) oldal ágyazhatja be.
Van egy harmadik, ALLOW-FROM értéke is, de azt a modern böngészők nem támogatják. Ha egyetlen konkrét külső domainnek akarsz beágyazást engedni, arra a CSP (Content-Security-Policy) frame-ancestors direktívája való.
Mi a viszonya a CSP-hez
Az X-Frame-Options a régebbi, egyszerűbb megoldás. A Content-Security-Policy: frame-ancestors ugyanezt tudja, csak rugalmasabban: több forrást is felsorolhatsz. Ha mindkettő jelen van, a modern böngészők a frame-ancestors értékét veszik figyelembe. A kettő együtt is kitehető, a régi böngészők miatt ez ma is bevett gyakorlat.
Mit jelent a keresőknek és az AI-nak
Sem a Google, sem az AI-crawlerek nem rangsorolnak közvetlenül az X-Frame-Options alapján. Ez nem rangsoroló tényező. Közvetve viszont számít: a hiányzó biztonsági fejlécek egy elhanyagolt üzemeltetés jelei, és a feltört oldal már nagyon is SEO-kérdés. A Weboldal-biztonság: a fejlécektől a feltörésig és a SEO-spam feltörés között szoros a kapcsolat. A legtöbb automata audit, a Lighthouse Best Practices (böngészős jó gyakorlatok) és a GEO-audit típusú vizsgálatok is nézik a fejléc meglétét.
Röviden: egy soros szerverbeállítás, ami megakadályozza, hogy az oldaladat idegen keretbe ültessék.
Miért fontos
Biztonsági következmény
Clickjacking-támadásnál a támadó átlátszó iframe-ben jeleníti meg az oldaladat. A felhasználó azt hiszi, egy nyereményjátékra kattint, valójában a te felületeden nyom meg egy gombot. Bejelentkezett munkamenettel ez komoly kár: jelszóváltoztatás, adatküldés, megrendelés.
A kockázat ott a legnagyobb, ahol van bejelentkezés vagy egykattintásos művelet. Webshop-kosár, admin-felület, banki jellegű funkció, ügyfélportál.
Üzleti és megfelelőségi következmény
A fejléc hiánya minden komolyabb biztonsági szkennerben megjelenik. Ha B2B-ben pályázol vagy nagyobb partnernek szállítasz, az ilyen listát előbb-utóbb eléd teszik. A riportokban ez az egyik leggyorsabban lezárható tétel: percek alatt javítható, és azonnal eltűnik a hibalistáról.
SEO-kapcsolat
Közvetlen hatása nincs. Közvetett annál inkább: a biztonsági HTTP-fejlécek hiánya általában együtt jár elavult PHP- és plugin-verziókkal. Ezek együtt vezetnek feltöréshez, az pedig index-szennyezéshez és manuális Google-büntetéshez.
Technikai példa
Apache-konfiguráció vagy .htaccess. Az always kulcsszó miatt a hibaoldalak (404, 500) is megkapják a fejlécet:
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Content-Security-Policy "frame-ancestors 'self'"
Header always set X-Content-Type-Options "nosniff"
</IfModule>
Nginx server blokkban ugyanez. Figyelj rá, hogy ha egy location blokkban is van add_header, az felülírja a kintebbieket:
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Content-Security-Policy "frame-ancestors 'self'" always;
Ellenőrzés a beállítás után. A várt kimenet két sor:
curl -sI https://pelda.hu/bejelentkezes | grep -i -E 'x-frame|content-security'
Ha egy konkrét partnernek engedsz beágyazást, az X-Frame-Options nem elég. Ilyenkor csak a CSP marad:
Content-Security-Policy: frame-ancestors 'self' https://partner.hu
Gyakori kérdések
Ront-e a Google-rangsoromon, ha hiányzik az X-Frame-Options?
Közvetlenül nem. A Google nem használja rangsoroló jelként a biztonsági fejléceket. Közvetve viszont számít: a védtelen oldalak nagyobb eséllyel törnek fel, a feltörés pedig index-szennyezéshez és manuális büntetéshez vezet. Az automata auditok és a biztonsági szkennerek is hibaként jelzik.
A DENY vagy a SAMEORIGIN a jobb választás?
Ha az oldalt sehol nem ágyazod be, a DENY a szigorúbb és biztonságosabb. A legtöbb oldalon a SAMEORIGIN a praktikus alapérték, mert nem töri el a saját előnézeteket és beágyazásokat. Kezdd SAMEORIGIN-nal, és csak akkor szigoríts, ha ellenőrizted, hogy semmi nem használ iframe-et.
Ha már van CSP-m, kell még X-Frame-Options is?
Szigorúan véve nem. A frame-ancestors direktíva mindent tud, amit a régi fejléc, és a modern böngészők azt részesítik előnyben. Mégis bevett gyakorlat mindkettőt kitenni: a régi böngészők és sok biztonsági szkenner kifejezetten az X-Frame-Options sort keresi.
Beállíthatom HTML-ből, meta tagként?
Nem. Az X-Frame-Options kizárólag HTTP-válaszfejlécként működik, a <meta http-equiv> változatát a böngészők figyelmen kívül hagyják. Ha nincs szerver-hozzáférésed, a hosting vagy a platform ügyfélszolgálatához kell fordulnod.
Elrontja-e a Google Ads vagy a Facebook konverziómérést?
Nem. A fejléc csak azt szabályozza, hogy az oldalad más oldal keretébe betölthető-e. A mérőkódok, a
Google Tag Manager és a pixelek ettől függetlenül futnak. Ha mégis eltörik valami, az szinte biztosan egy iframe-es beágyazás, nem a mérés.