Biztonsági fejlécek ellenőrzése

Egy oldal válaszfejlécei illeszthetők be —curl -sI https://your-site.example/a terminálban, vagy a böngésző Hálózat paneléből származó blokk — és egyA+-tól F-ig terjedő osztályzataz OWASP biztonságos fejléc-ellenőrzőlistáján:Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, keretezési védelem,Referrer-Policy, Permissions-Policy, a keresztirányú izolációs hármas, verziószivárgások, elavult fejlécek és sütijelzők — minden megállapítás a pontos javítással párosítvanginx, Apache és Expressolyan sorok, amelyek javítják. Minden a böngészőben fut; az oldal soha nem keresi fel az ellenőrzött webhelyet.
Az állapotsor opcionális. Minden Set-Cookie sor ellenőrzésre kerül. Hogy egyáltalán legyen szabályzat, amelyet értékelni lehet, azt a CSP-generátoron lehet összeállítani; egy fejlécblokk sorokra bontásához pedig a HTTP-fejlécelemző használható.
Még nincs pontszám. A válaszfejlécek beillesztése után a Fejlécek ellenőrzése gombbal indítható az ellenőrzés, vagy egy minta tölthető be.
Az egyes megállapításokhoz tartozó javító sorok ellenőrzés után jelennek meg.
Ennek az ellenőrzőnek a hatóköre az SSL-biztonsági ellenőrzéshez képest. Ez az oldal a biztonsági válaszfejléceket értékeli (a fenti OWASP-listát). Az SSL-biztonsági ellenőrzés a HTTPS-beállítást értékeli: tanúsítványlánc, protokollverziók, rejtjelerősség és vegyes tartalom. A HSTS és a sütijelzők mindkét oldalon megjelennek, mert mindkét lista tartalmazza őket, de más szemszögből — a teljes képhez mindkét ellenőrzés elvégzendő.
Önteszt
Újrafuttatja a pontozót rögzített fejlécblokkokon: a jó minta A+ osztályzattal, a rossz minta F-fel, minden levonás kiváltva, minden szabály külön-külön (a pontszám számtana), a verziószivárgási felső határ, sütitanácsadók, CSP-minőségi megjegyzések, a keretezési védelemként számító frame-ancestors, az osztályzathatárok mindkét oldala, a javító részletek, és a negatív esetek. Semmi nincs elküldve sehova.
Mik azok a biztonsági fejlécek?
Egy mondatban: a biztonsági fejlécek olyan válaszfejlécek, amelyek utasítják a böngészőt, hogy kényszerítsen ki egy védelmet, amelyet a böngésző egyedül nem tudna kikövetkeztetni — soha nem szabad szkriptet betölteni ismeretlen eredetből, soha nem szabad beszélni egyszerű HTTP-n ezzel a gazdagéppel, soha ne ágyazza be ezt az oldalt — és mindegyik egy konfigurációs sorba kerül.
A fejlécek, amelyeket ez az oldal értékel
FejlécVédelemOWASP ajánlott érték
Strict-Transport-Securityprotokollvisszaminősítés és sütilopás az első egyszerű HTTP-kérésenmax-age=63072000; includeSubDomains
Content-Security-Policyoldalközi szkriptelés, rosszindulatú beágyazások, vegyes tartalomdefault-src 'self'; form-action 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; upgrade-insecure-requests
X-Content-Type-OptionsMIME-zavar (szkript képként kiszolgálva)nosniff
X-Frame-Options / CSP frame-ancestorskattintásos eltérítés (az oldal támadó általi keretbe foglalása)deny / 'none'
Referrer-PolicyURL-ek (tokenekkel együtt) szivárogtatása harmadik fél oldalainakno-referrer
Permissions-Policyoldalak és beágyazások csendben kamerát, mikrofont, helymeghatározást használnakminden funkció letiltva
Cross-Origin-Opener-Policymás ablakok, amelyek a böngészési környezetbe nyúlnaksame-origin
Cross-Origin-Embedder-Policyolyan erőforrások betöltése, amelyek nem jelezték a hozzájárulást (folyamat-izolációt tesz lehetővé)require-corp
Cross-Origin-Resource-Policymás oldalak által beágyazott erőforrásoksame-origin
A pontszám kiszámítása

Száz pontból indulva levonás: −25 hiányzó CSP, −20 hiányzó HSTS, −10 minden hiányzó X-Content-Type-Options, Referrer-Policy vagy keretezési védelem után, −5 minden cross-origin hármas és Permissions-Policy után, −5 a Server/X-Powered-By verziószivárgás miatt (felső határral), és −5 egy nem nulla X-XSS-Protection után. Betűjegyek: 100 = A+, 90+ = A, 80+ = B, 70+ = C, 60+ = D, alatta = F. A tanácsadó megjegyzések (sütijelzők, gyorsítótár-vezérlés, CSP-minőség) nem vonnak le pontot.

Gyakori hibák
  • Fejlécek beállítása rossz válaszokon. Minden válaszon hozzá kell adni őket, a hibaoldalakat és átirányításokat is beleértve — erre szolgál az always az add_header ... always; (nginx) és a Header always set (Apache) esetében.
  • Csak a főoldal tesztelése. A proxyk, gyorsítótárak és régi alkalmazások bizonyos útvonalakon gyakran eltávolítják vagy felülírják a fejléceket. Az érdemi oldalak ellenőrzendők: bejelentkezés, pénztár, API-végpontok.
  • Az X-XSS-Protection megtartása. Az általa vezérelt auditor sebezhetőségeket okozott; a böngészők eltávolították. A nem nulla érték most szándékosan pontot von le; eltávolítása és a CSP-re bízása javasolt.
  • Az a hit, hogy az X-Frame-Options naprakész. Nem engedélyezhet konkrét eredeteket, és nincs a CSP szabványban; a frame-ancestors a modern helyettesítő. Mindkettő megtartása az átmenet alatt rendben van — ez az oldal mindkettőt elfogadja.
  • Verziós bannerek küldése. A Server: Apache/2.4.58 (Unix) szűkíti a támadó keresését az ismert hibákra, nulla előnnyel. A verziót el kell távolítani; a sorok száma alacsony tartandó.
GYIK

Miért csak 5-5 pontot ér a COOP/COEP/CORP? A hármas a legújabb réteg, főleg ott kell, ahol folyamat-izolációra van szükség (SharedArrayBuffer, Spectre-elleni védelem). Enélkül egy oldal is megtartja alapvető védelmeit; ezekkel viszont egyes cross-origin beágyazásokat igazítani kell — ezért kevesebbet nyomnak a latban, mint a CSP vagy a HSTS.

Jelent-e biztonságot a magas osztályzat? Nem — azt jelenti, hogy a válaszfejlécek be vannak állítva. A biztonsági fejlécek egy réteget jelentenek: a TLS-beállítás, a munkamenet-kezelés, a bemenet-ellenőrzés és a javítások döntik el, hogy az oldal ténylegesen biztonságos-e. A TLS-rétegre az SSL-biztonsági ellenőrzés szolgál.

Miért ilyen hosszú a Permissions-Policy értéke? Az OWASP-alapvonal minden funkciót kifejezetten kikapcsol, így ha a böngésző új funkciókat ad, nem engedélyezi őket csendben. Egy rövidebb érték, mint a camera=(), microphone=(), geolocation=(), jó kezdet — csak tudni kell, mit hagy bekapcsolva.

Ellenőrizhetők-e innen bármely oldal fejlécei? Ez az oldal soha nem indít hálózati kéréseket — kizárólag a beillesztett szöveget értékeli, ezért tűzfalak mögött és belső gazdagépeken is működik, és semmi nem hagyja el a gépet. A fejlécek lekérése egyetlen curl -sI a terminálban.

Mi a helyzet a Clear-Site-Data és az X-Permitted-Cross-Domain-Policies fejlécekkel? Szűk esetekben hasznosak (kijelentkezési válaszok; régi PDF-/Flash-megjelenítők). Itt tanácsadóak, nem pontozottak — a Clear-Site-Data minden válaszon való küldése minden oldalbetöltésnél törölné a felhasználók tárolóját.