Co konkrétně chybějící hlavičky umožňují útočníkům
Bezpečnostní hlavičky jsou pokyny, které server posílá prohlížeči společně s HTML stránkou. Určují, odkud smí načítat skripty, zda stránka může běžet v rámu a zda vyžaduje šifrované spojení. Když chybí, prohlížeč používá výchozí tolerantní nastavení, které útočníkům dává volnou ruku. Nejzávažnější je absence Content‑Security‑Policy (CSP), která bez omezení povoluje spuštění jakéhokoli JavaScriptu v kontextu domény. To otevírá cestu k útokům Cross‑Site Scripting (XSS), kdy se do stránky vstrčí cizí kód kráducí přihlašovací údaje nebo platební karty. Chybějící Strict‑Transport‑Security (HSTS) dovoluje útočníkovi v místní síti přepnout uživatele na nezabezpečené HTTP a odposlouchávat komunikaci. Bez X‑Frame‑Options nebo direktivy frame‑ancestors v CSP lze web vložit do neviditelného rámu na podvodné stránce a donutit návštěvníka kliknout na tlačítko, které provede nechtěnou akci · tzv. clickjacking.
Jak to vypadá v praxi: výsledky analýzy advokátních webů
V auditech CIAD se ukazuje, že i weby zpracovávající citlivá data často ignorují základní ochrany. Při kontrole 239 advokátních webů v českém prostředí chyběla hlavička Content‑Security‑Policy u většiny z nich, HSTS nebyla nastavena u přibližně třetiny a X‑Frame‑Options chyběla u více než poloviny. Advokátní kanceláře zpracovávají důvěrnou korespondenci, smlouvy a osobní údaje klientů, což je pro útočníky atraktivní cíl. Konkrétní riziko: pokud redakční systém má zranitelnost typu XSS a CSP chybí, útočník může vložit skript, který přečte obsah e‑mailové schránky v webovém klientu nebo přesměruje klienta na falešnou platební bránu. I malá kancelář s jedním webem bez hlaviček se stává snadným cílem automatizovaných skenerů, které hledají právě tato chybějící nastavení.
Jak chybějící hlavičky nasadit a ověřit
Implementace probíhá na úrovni webového serveru nebo aplikační vrstvy a nevyžaduje změny v kódu stránek. Postup pro Apache nebo Nginx:
- Přidejte do konfigurace virtuálního hosta hlavičku
Content‑Security‑Policys restriktivní politikou, napříkladdefault‑src 'self'; script‑src 'self' https://cdn.dovereny.cz; style‑src 'self' 'unsafe‑inline'; frame‑ancestors 'none';. Začněte v režimuContent‑Security‑Policy‑Report‑Only, abyste zachytili chyby bez rozbití webu. - Nastavte
Strict‑Transport‑Securitys hodnotoumax‑age=31536000; includeSubDomains; preloadpo ověření, že všechny subdomény fungují na HTTPS. - Přidejte
X‑Frame‑Options: DENYneboSAMEORIGINpro starší prohlížeče, moderní CSP direktivaframe‑ancestorsje priorita. - Doplňte
X‑Content‑Type‑Options: nosniffaReferrer‑Policy: strict‑origin‑when‑cross‑origin. - Otestujte nasazení nástrojem
securityheaders.comneboobservatory.mozilla.orga ověřte funkčnost formulářů, platebních bran a externích widgetů.
Údržba a sledování v čase
Jednorázové nasazení nestačí. Každá změna webu · nový analytický skript, chatbot, marketingový pixel · může CSP porušit. Nastavte monitoring hlášení porušení CSP (direktiva report‑uri nebo report‑to) na e‑mail nebo do systému logování. Pravidelně, alespoň jednou za kvartál, spusťte automatizovaný sken bezpečnostních hlaviček v CI/CD pipeline. Sledujte vydání nových direktiv, například Permissions‑Policy pro omezení přístupu k kamere, mikrofonu nebo geolokaci. Dokumentujte povolené domény v interní wiki, aby vývojáři věděli, kam smí přidávat zdroje, a bezpečnostní tým má přehled o rizikové ploše.
Co to znamená: Chybějící bezpečnostní hlavičky nejsou kosmetický nedostatek, ale přímá zranitelnost, kterou automatizovaní útočníci využívají masově. Nasazení základních pěti hlaviček zabere zkušenému administrátovi jeden odpoledne a okamžitě zvedne úroveň ochrany dat klientů i reputace firmy.
Časté dotazy
Jak rychle zjistím, které hlavičky mám chybějící?
Stačí zadat doménu do securityheaders.com nebo Mozilla Observatory. Obě služby ihned vrátí přehled s hodnocením a konkrétními doporučeními pro opravu.
Rozbije CSP můj web, pokud ho nastavím špatně?
Ano, restriktivní CSP blokuje načítání skriptů, stylů a obrázků z nepovolených zdrojů. Proto se doporučuje začít režimem Report‑Only, který jen loguje chyby bez blokování.
Stačí HSTS bez předchozího přesměrování na HTTPS?
Ne, HSTS funguje až po prvním úspěšném HTTPS spojení. Web musí mít funkční certifikát a přesměrování HTTP na HTTPS nastavené dřív, než HSTS aktivujete.
Musím řešit hlavičky i u statického webu na shared hostingu?
Ano, statické weby jsou taktéž cílem clickjackingu a MIME sniffingu. Většina shared hostingů umožňuje nastavit hlavičky přes .htaccess nebo konfigurační panel.