Az X-Content-Type-Options egy HTTP-válaszfejléc, amely megtiltja a böngészőnek, hogy felülbírálja a szerver által megadott Content-Type értéket. Egyetlen érvényes értéke van: nosniff.
Hogyan működik
Minden válaszhoz tartozik egy Content-Type fejléc: ez mondja meg, hogy a fájl HTML, CSS, JavaScript vagy kép. A böngészők régen nem bíztak ebben az értékben. Ha gyanúsnak találták, belenéztek a tartalomba, és maguk döntötték el a típust. Ezt hívják MIME-sniffingnek.
A sniffing kényelmes volt a rosszul beállított szervereknél, de veszélyes. Egy feltöltött „kép”, ami valójában HTML-t tartalmaz, script-ként futhatott le. A nosniff ezt zárja ki: a böngésző szigorúan azt a típust használja, amit a szerver küldött.
Mit blokkol pontosan
A nosniff két helyen szigorít:
- Script: a
<script src="...">betöltése megszakad, ha a válaszContent-Type-ja nem JavaScript-típus (text/javascript,application/javascript). - Stylesheet: a CSS betöltése megszakad, ha a típus nem
text/css.
A gyakorlatban ez azt jelenti, hogy a fejléc bekapcsolása azonnal kibuktatja a rosszul konfigurált szervert. Ha a CDN vagy a PHP-szkript text/html-ként adja vissza a JS-t, az oldal eltörik. Ez nem a fejléc hibája, hanem a meglévő hibát teszi láthatóvá.
Miért része minden biztonsági alapcsomagnak
A nosniff a legolcsóbb tétel a biztonsági fejlécek között. Egy sor a szerverkonfigban, nincs karbantartási igénye, nincs szabálylistája, mint a Content-Security-Policy-nél. Ezért szokta minden audit-eszköz az elsők között keresni.
A generatív keresők és a mögöttük dolgozó crawlerek nem olvassák ezt a fejlécet. Közvetlen AI-értelmezhetőségi hatása nincs. A hatás közvetett: a hiányzó alapfejlécek egy gondozatlan üzemeltetés jelei, és ugyanez a gondozatlanság okozza később az SEO-spam feltöréseket is.
Röviden: egy sor a szerverkonfigban, ami megtiltja a böngészőnek, hogy kitalálja a fájltípust.