Tovább a tartalomhoz

X-Content-Type-Options

A teszt azt nézi, hogy az oldal X-Content-Type-Options: nosniff fejlécet küld-e, amely megtiltja a böngészőnek a tartalomtípus kitalálását.

Ha egy szerver nem, vagy rosszul adja meg egy fájl típusát, a böngésző megpróbálja kitalálni a tartalmából (MIME-szippantás, „sniffing”). Ez kihasználható: egy szövegként kiszolgált, de HTML-t tartalmazó (például felhasználó által feltöltött) fájlt a böngésző HTML-ként is értelmezhet, és ezzel XSS-támadás válik lehetővé. Az X-Content-Type-Options: nosniff fejléc megtiltja ezt. A riportban a teszt súlyossága alacsony.

A riport a főoldal válaszfejlécét nézi (átirányítások követése után a végső válaszét).

  • Megfelelő: az X-Content-Type-Options fejléc értéke (kis- és nagybetűtől függetlenül, a szóközöket levágva) nosniff. Ha a fejléc vesszővel elválasztott több értéket tartalmaz, az első számít.
  • Hiba: nincs a fejléc, vagy az első értéke nem nosniff.

A teszt csak a főoldal válaszát nézi, a többi fájl (kép, szkript, stílus) fejlécét nem.

Az MDN szerint a nosniff két dolgot csinál. Ha a kérés szkript vagy stílus, a böngésző blokkolja a választ, ha a típusa nem JavaScript-típus, illetve nem text/css. Minden más válasznál a megadott Content-Type-ot használja kitalálás helyett. A fejléc bekapcsolása előtt ezért győződj meg róla, hogy a szerver minden fájlt helyes Content-Type-pal ad ki, különben egy rosszul kiszolgált szkript vagy stílus nem fog betöltődni.

A riport kártyája az alábbi fejlécet adja. Az alábbi kódok a fejlécet egyedül állítják be; ha a riport több hiányzó fejlécet jelez, ugyanabba a blokkba kerülhet mindegyik.

Az nginx server blokkjába. Ha egy location blokkban is van add_header, oda is be kell írni, mert az nginx csak akkor örökli a fejlécet, ha az adott szinten nincs add_header.

nginx
add_header X-Content-Type-Options "nosniff" always;
.htaccess
<IfModule mod_headers.c>
Header always set X-Content-Type-Options "nosniff"
</IfModule>

Rules → Overview → Create rule → Response Header Transform Rule:

Cloudflare
Set static: X-Content-Type-Options = nosniff

A Cloudflare dokumentációja szerint az SSL/TLS → Edge Certificates HSTS-beállításai között külön „No-Sniff Header” kapcsoló is van, amely ugyanezt a fejlécet küldi.

Új fájlba: wp-content/mu-plugins/biztonsagi-fejlecek.php (Bedrockon: web/app/mu-plugins/biztonsagi-fejlecek.php):

biztonsagi-fejlecek.php
<?php
add_action( 'send_headers', function () {
header( 'X-Content-Type-Options: nosniff' );
} );

Futtasd újra a riportot. Parancssorból:

Terminál
curl -sI https://example.com/ | grep -i x-content-type-options

A kimenet: x-content-type-options: nosniff. Nyisd meg az oldalt böngészőben is, és nézd meg a fejlesztői eszközök konzolját: ha egy szkript vagy stílus típusa nem stimmel, a böngésző itt hibaüzenetet ír.

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