Kontrola bezpečnostních hlaviček

Vložte hlavičky odpovědi stránky —curl -sI https://your-site.example/v terminálu nebo blok z panelu Síť v prohlížeči — a získejteA+ až Fv kontrolním seznamu OWASP Secure Headers:Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, ochrana proti rámování,Referrer-Policy, Permissions-Policy, trojice izolace mezi zdroji, úniky verzí, zastaralé hlavičky a příznaky cookies — každý nález spárovaný s přesnýmnginx, Apache a Expressřádky, které to opraví. Vše běží ve vašem prohlížeči; stránka nikdy nekontaktuje váš web.
Řádek se stavovým kódem je volitelný. Kontrolují se všechny řádky Set-Cookie. Pokud zatím nemáte pravidlo, které by se dalo hodnotit, sestavte je v generátoru CSP; pokud chcete blok hlaviček rozebrat řádek po řádku, použijte parser HTTP hlaviček.
Zatím žádné hodnocení. Vložte hlavičky odpovědi a stiskněte Zkontrolovat hlavičky, nebo načtěte ukázku.
Opravné řádky pro každý nález se zobrazí zde po kontrole.
Rozsah této kontroly oproti kontrole SSL zabezpečení. Tato stránka hodnotí bezpečnostní hlavičky odpovědi (seznam OWASP výše). Kontrola SSL zabezpečení hodnotí vaše nastavení HTTPS: řetězec certifikátů, verze protokolů, sílu šifer a smíšený obsah. HSTS a příznaky cookies se objevují na obou stránkách, protože jsou v obou seznamech, ale z jiného úhlu pohledu — pro úplný obraz spusťte obě kontroly.
Autotest
Znovu spustí hodnotitele nad pevnými bloky hlaviček: dobrý vzorek na A+, špatný vzorek na F se všemi odečty, každé pravidlo odděleně (aritmetika skóre), omezení úniku verzí, poznámky k cookies, poznámky ke kvalitě CSP, frame-ancestors počítané jako ochrana proti rámování, hranice hodnocení na obou stranách každé meze, úryvky oprav a negativní cesty. Nic se nikam neposílá.
Co jsou bezpečnostní hlavičky?
Stručně: bezpečnostní hlavičky jsou hlavičky odpovědi, které prohlížeči nařizují vynutit ochranu, na kterou nepřijde sám: nikdy nenačítat skripty z neznámých zdrojů, nikdy nemluvit s tímto hostitelem prostým HTTP, nikdy nerámovat tuto stránku — a každá z nich stojí jeden řádek konfigurace.
Hlavičky, které tato stránka hodnotí
HlavičkaChrání protiDoporučená hodnota OWASP
Strict-Transport-Securitysnížení úrovně protokolu a krádež cookies při prvním požadavku přes prostý HTTPmax-age=63072000; includeSubDomains
Content-Security-Policycross-site scripting, škodlivé vložené prvky, smíšený obsahdefault-src 'self'; form-action 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; upgrade-insecure-requests
X-Content-Type-Optionszáměna MIME (skript podávaný jako obrázek)nosniff
X-Frame-Options / CSP frame-ancestorsclickjacking (vaši stránku vloží útočník do rámce)deny / 'none'
Referrer-Policyúnik URL (s tokeny) na weby třetích stranno-referrer
Permissions-Policystránky a vložené prvky tiše využívající kameru, mikrofon, polohuvšechny funkce vypnuty
Cross-Origin-Opener-Policyjiná okna zasahující do vašeho kontextu prohlíženísame-origin
Cross-Origin-Embedder-Policynačítání zdrojů, které se nepřihlásily (umožňuje izolaci procesů)require-corp
Cross-Origin-Resource-Policyvaše zdroje vložené jinými webysame-origin
Jak se hodnocení počítá

Začněte na 100 bodech a odečítejte: −25 za chybějící CSP, −20 za chybějící HSTS, −10 za každou chybějící hlavičku X-Content-Type-Options, Referrer-Policy nebo ochranu proti rámování, −5 za každou z trojice cross-origin a Permissions-Policy, −5 za úniky verzí v Server/X-Powered-By (omezeno) a −5 za nenulovou hodnotu X-XSS-Protection. Písmenná hodnocení: 100 = A+, 90+ = A, 80+ = B, 70+ = C, 60+ = D, pod tím = F. Poznámky (příznaky cookies, cache control, kvalita CSP) se neodečítají.

Časté chyby
  • Nastavování hlaviček na špatných odpovědích. Přidejte je na každou odpověď, včetně chybových stránek a přesměrování — k tomu slouží always v add_header ... always; (nginx) a Header always set (Apache).
  • Testování jen domovské stránky. Proxy, cache a starší aplikace často hlavičky na některých cestách odstraní nebo přepíší. Kontrolujte stránky, na kterých záleží: přihlášení, pokladnu, koncové body API.
  • Ponechání X-XSS-Protection. Auditor, který pohánělo, způsoboval vlastní zranitelnosti; prohlížeče ho odstranily. Nenulová hodnota nyní záměrně stojí body — odstraňte ji a nechte práci na CSP.
  • Považovat X-Frame-Options za aktuální. Nedokáže povolit konkrétní zdroje a není ve standardu CSP; moderní náhradou je frame-ancestors. Během přechodu je v pořádku mít obě — tato stránka přijme kteroukoli.
  • Posílání bannerů s verzemi. Server: Apache/2.4.58 (Unix) zužuje útočníkovo hledání známých chyb bez jakéhokoli přínosu pro vás. Verzi odstraňte a počet řádků udržujte nízký.
Časté dotazy

Proč COOP/COEP/CORP stojí jen 5 bodů každý? Trojice je nejnovější vrstvou, potřebnou hlavně tam, kde chcete izolaci procesů (SharedArrayBuffer, zpevnění proti Spectre). Web bez nich má stále své základní ochrany; s nimi je třeba upravit některé cross-origin vložené prvky — proto mají menší váhu než CSP nebo HSTS.

Znamená vysoké hodnocení, že je web bezpečný? Ne — znamená to, že hlavičky odpovědi jsou nastaveny. Bezpečnostní hlavičky jsou jedna vrstva: o tom, zda je web skutečně bezpečný, stále rozhoduje konfigurace TLS, správa relací, validace vstupů a záplatování. Pro vrstvu TLS spusťte Kontrolu SSL zabezpečení.

Proč je moje hodnota Permissions-Policy tak dlouhá? Základní úroveň OWASP všechny funkce výslovně vypíná, takže přidání nových funkcí v prohlížeči je tiše znovu nepovolí. Kratší hodnota jako camera=(), microphone=(), geolocation=() je začátek — jen vězte, co tím zůstane zapnuto.

Mohu odsud zkontrolovat hlavičky jakéhokoli webu? Tato stránka nikdy neprovádí síťové požadavky — hodnotí přesně text, který vložíte, takže funguje i za firewallem a na interních serverech a nic z toho, co kontrolujete, neopustí váš počítač. Získání hlaviček je jeden příkaz curl -sI v terminálu.

Co s Clear-Site-Data a X-Permitted-Cross-Domain-Policies? Užitečné v úzkých situacích (odhlašovací odpovědi; starší prohlížeče PDF/Flash). Zde jsou pouze informativní, nejsou hodnoceny — odesílat Clear-Site-Data na každou odpověď by při každém načtení stránky smazalo úložiště uživatelů.