Tovább a tartalomhoz

Nincs elavult fejléc

A teszt azt nézi, küld-e az oldal X-XSS-Protection fejlécet; ha igen, töröld a szerver- vagy a CDN-beállításból.

Egyes válaszfejlécek egykor védelmet adtak, ma viszont már nem használja őket a böngésző, vagy kifejezetten árt velük. A teszt az X-XSS-Protection fejlécet keresi. Ezt a régi böngészők beépített XSS-szűrője olvasta; a MDN jelölése szerint elavult, nem szabványos, és bizonyos esetekben maga is XSS-sebezhetőséget hozhat létre egy egyébként biztonságos oldalon.

Ha az oldal küldi ezt a fejlécet, a teszt hibát jelez. A javítás egyszerű: töröld a fejlécet, semmi nem függ tőle.

A riport letölti a kezdőoldalt (legfeljebb 5 átirányítást követ), és megnézi a végső válasz fejléceit. A teszt kétállapotú, nincs köztes figyelmeztetés.

Eredmény Mikor
Megfelelő a válaszban nincs X-XSS-Protection fejléc
Hiba a válaszban van X-XSS-Protection fejléc, bármilyen értékkel

Amit a teszt nem csinál:

  • Csak ezt az egy fejlécnevet keresi, más elavult fejlécet nem.
  • Csak a kezdőoldal válaszát nézi, az aloldalakét nem.
  • Az értéket nem vizsgálja: az X-XSS-Protection: 0 is hibának számít.
  1. Keresd meg, melyik réteg küldi a fejlécet: a webszerver beállítása, egy proxy vagy CDN, esetleg maga az alkalmazás. Ha a szerver konfigurációjában add_header vagy Header set sorban szerepel, elég törölni azt a sort.
  2. Ha nem a te kezedben lévő réteg adja, töröld a fejlécet onnan, ahol a választ továbbítod (lent a platformonkénti változatok).
  3. A tényleges védelmet a Content-Security-Policy adja; erről a Content-Security-Policy oldalon olvashatsz.

A location ~ \.php$ blokkba, a fastcgi_pass sor mellé:

nginx
fastcgi_hide_header X-XSS-Protection;

A fastcgi_hide_header a FastCGI-kiszolgálótól (PHP-FPM) érkező fejlécet rejti el. Ha az nginx proxy_pass mögött továbbít, proxy_hide_header X-XSS-Protection; kell. Ha a fejlécet magában a konfigurációban egy add_header sor küldi, azt a sort töröld.

A webroot .htaccess fájljába:

.htaccess
<IfModule mod_headers.c>
Header unset X-XSS-Protection
Header always unset X-XSS-Protection
</IfModule>

A Header unset a sikeres válaszokról, a Header always unset a hibaválaszokról is leveszi a fejlécet (a mod_headers az onsuccess és az always táblát külön kezeli). Az <IfModule> burok miatt a sor akkor sem okoz 500-as hibát, ha a modul nincs betöltve.

Cloudflare: Rules, Overview, Create rule, Response Header Transform Rule. A szabály műveletének a válaszfejléc eltávolítását válaszd, a fejléc neve X-XSS-Protection:

Cloudflare
Remove: X-XSS-Protection

Futtasd újra a riportot, a teszt zöldre vált, ha a fejléc eltűnt. Parancssorban is megnézheted (a cache elkerülése végett tegyél az URL-re egyedi paramétert):

Terminál
curl -sI "https://pelda.hu/?v=1" | grep -i x-xss-protection

Ha a parancs nem ír ki semmit, a fejléc nincs a válaszban.

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