Biztonsági fejlécek elemző
Illeszd be a curl -I vagy a DevTools Hálózat füléről származó nyers HTTP válaszfejléceket, és kapsz egy osztályzattal ellátott biztonsági auditot — valódi Content-Security-Policy nyelvtani elemzővel, valamint HSTS, X-Frame-Options, cookie jelzők és továbbiak ellenőrzésével, teljesen offline.
🔒 Teljesen a böngészőjében dolgozzák fel – soha semmi, amit itt beírt, nem kerül feltöltésre.
Eredmény
A válaszfejlécek hordozzák a legtöbb weboldal böngésző által ténylegesen érvényesített biztonsági házirendjének nagy részét, ám ezek szemrevételezése könnyen megtévesztő lehet: egy Content-Security-Policy első pillantásra szigorúnak tűnhet, miközben csendben engedélyezi az 'unsafe-inline' szkripteket, egy Strict-Transport-Security fejléc pedig jelen lehet, de olyan rövid max-age idővel, ami szinte semmit sem ér. Ez az eszköz a beillesztett nyers fejlécblokkot — amit közvetlenül a curl -I, a Postman vagy egy böngésző DevTools Hálózat fül kéréséből másolsz ki — ugyanazokkal a típusú ellenőrzésekkel vizsgálja, mint az ismert online fejlécminősítők, mindezt teljes egészében a saját böngésződben. Semmit nem kérünk le: csakis az kerül elemzésre, amit beillesztesz, ami azt jelenti, hogy az eszköz azonos módon működik egy publikus éles webhely, egy belső staging kiszolgáló vagy egy tűzfal mögötti végpont esetében, amelyet egyetlen külső vizsgáló sem érhet el.
A központi elem egy valódi Content-Security-Policy nyelvtani elemző, nem pedig egy ellenőrzőlista. A fejléc értékét pontosvesszők mentén irányelvekre bontjuk, és minden irányelv forráslistáját önállóan bonjuk szét és vizsgáljuk: a szkriptekkel és stílusokkal kapcsolatos irányelvek megjelölésre kerülnek, ha engedélyezik az 'unsafe-inline' vagy az 'unsafe-eval' opciót; minden irányelv hibát kap, ha csupasz wildcard '*' forrást tartalmaz (különös súllyal, ha ez a wildcard a script-src, object-src, base-uri vagy default-src esetében szerepel); a széleskörű sémaforrások, mint a 'https:' szkriptirányelv esetében, közel azonos megítélés alá esnek, mint a wildcard; és a házirend egésze ellenőrzésre kerül a hiányzó default-src tartalék, illetve az olyan elavult irányelvek miatt (block-all-mixed-content, plugin-types, referrer, reflected-xss), amelyeket a modern böngészők egyszerűen figyelmen kívül hagynak. A kizárólag Content-Security-Policy-Report-Only formában küldött CSP felismerésre és megjelölésre kerül, mint még nem érvényesített házirend, elkülönítve a teljesen hiányzó házirendtől.
A CSP-n túl az eszköz ellenőrzi a Strict-Transport-Security fejlécet is, kielemezve annak max-age irányelvét, és a durván hat hónapnál rövidebb értékeket túl rövidnek jelzi ahhoz, hogy érdemben hatékonyak legyenek, valamint azt, hogy includeSubDomains és preload be van-e állítva. Az X-Content-Type-Options fejlécnél a pontos 'nosniff' sztringet kell tartalmaznia, egyébként a böngészők figyelmen kívül hagyják. Az X-Frame-Options mező a DENY vagy SAMEORIGIN értékek megléte alapján kerül ellenőrzésre, de az eszköz azt is figyelembe veszi, hogy a CSP frame-ancestors irányelv az átkattintásos támadások elleni védelem modern utódja — ha ez jelen van, az X-Frame-Options lefedettnek minősül akkor is, ha maga a régi fejléc hiányzik. A Referrer-Policy ellenőrzése a valós, érvényes kulcsszavak listájával történik, és hibát ad, ha a teljes URL-t kiszivárogtató 'unsafe-url' értékre van állítva; a Permissions-Policy puszta meglétét ellenőrizzük; végül minden talált Set-Cookie sor elemzésre kerül a saját Secure, HttpOnly és SameSite attribútumai tekintetében, beleértve azt a speciális szabályt is, hogy a SameSite=None sütik Secure nélkül csendesen elutasításra kerülnek a böngészők által.
Minden ellenőrzés háromféle, őszinte állapotot ad vissza — megfelelő, javítandó vagy hiányzó —, közérthető magyarázattal arról, hogy az adott fejléc miért számít a valódi támadások (XSS, átkattintásos támadás, cookie lopás, protokoll visszaminősítés) elleni védelemben, a teljes A–F osztályzat pedig a fejlécek pontszámainak átlátható összege, nem pedig egy feketedobozos érték. A teljes jelentés egyetlen kattintással szövegként másolható, így beilleszthető egy pull requestbe, hibajegybe vagy biztonsági átvilágításba, és mivel az elemzés teljes mértékben a beillesztett szöveg alapján történik, az eszköz egyformán hasznos a saját webhelyed fejléceinek auditálásához, egy beszállító válaszának átvizsgálásához az integráció előtt, vagy egy konfigurációs módosítás ellenőrzéséhez a kiadás előtt.