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.
Hogyan mérjük
Szekció neve “Hogyan mérjük”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: 0is hibának számít.
Hogyan javítsd
Szekció neve “Hogyan javítsd”- 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_headervagyHeader setsorban szerepel, elég törölni azt a sort. - 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).
- A tényleges védelmet a
Content-Security-Policyadja; erről a Content-Security-Policy oldalon olvashatsz.
nginx
Szekció neve “nginx”A location ~ \.php$ blokkba, a fastcgi_pass sor mellé:
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.
Apache (.htaccess)
Szekció neve “Apache (.htaccess)”A webroot .htaccess fájljába:
<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
Szekció neve “Cloudflare”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:
Remove: X-XSS-ProtectionHogyan ellenőrizd
Szekció neve “Hogyan ellenőrizd”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):
curl -sI "https://pelda.hu/?v=1" | grep -i x-xss-protectionHa a parancs nem ír ki semmit, a fejléc nincs a válaszban.
Készült: