Co jsou HTTP Security Headers
HTTP security headers jsou speciální instrukce, které webový server posílá prohlížeči spolu s každou odpovědí.
Určují, jak má prohlížeč se stránkou zacházet z hlediska bezpečnosti.
Díky nim lze například vynutit používání HTTPS, omezit spouštění externích skriptů nebo zabránit načtení stránky v rámci cizího webu.
Jde o důležitou bezpečnostní vrstvu mezi serverem a prohlížečem, která pomáhá snižovat riziko útoků, jako je XSS nebo clickjacking.
Jak HTTP bezpečnostní hlavičky fungují
Při každé odpovědi server kromě samotného obsahu stránky odesílá také sadu HTTP hlaviček. Některé z nich mají čistě technický význam (např. typ obsahu), jiné slouží přímo k posílení bezpečnosti. Prohlížeč tyto instrukce vyhodnocuje a podle nich upravuje své chování. Security headers například:
- omezují spouštění externích skriptů
- zabraňují načtení stránky v iframe
- vynucují šifrované spojení
- řídí předávání referreru
Prohlížeč tak aktivně blokuje chování, které by mohlo vést ke zneužití aplikace.
Nejčastější HTTP security headers
Existuje několik bezpečnostních hlaviček, z nichž každá řeší jiný typ rizika. Správná kombinace těchto hlaviček výrazně zvyšuje odolnost webu proti útokům.
Mezi nejdůležitější patří například:
- Content-Security-Policy – omezuje zdroje, které může stránka načítat
- Strict-Transport-Security – vynucuje používání HTTPS
- X-Frame-Options – chrání před clickjackingem
- X-Content-Type-Options – zabraňuje tzv. MIME sniffingu
- Referrer-Policy – určuje, jaké informace o původu požadavku se mají odesílat
- Permissions-Policy – omezuje přístup k funkcím prohlížeče (např. kamera, mikrofon)
Každá z těchto hlaviček řeší jiný typ bezpečnostního rizika.
Nastavení HTTP security headers
Bezpečnostní hlavičky lze nastavovat na úrovni webového serveru (např. Apache, Nginx) nebo přímo v aplikaci.
U sdíleného hostingu může být část hlaviček přednastavena poskytovatelem, u VPS nebo dedikovaného serveru je konfigurace obvykle plně v rukou správce.
Nastavení je vhodné pravidelně testovat pomocí specializovaných nástrojů pro kontrolu bezpečnostních hlaviček, aby bylo jisté, že odpovídá aktuálním bezpečnostním doporučením.
V praxi se často používají například Securityheaders.com, Mozilla Observatory nebo nástroj SSL Labs Server Test, který kromě TLS konfigurace hodnotí i některé bezpečnostní hlavičky.
Rizika špatné konfigurace
Přestože jsou HTTP security headers silným bezpečnostním nástrojem, jejich nesprávná konfigurace může způsobit problémy s funkčností webu.
Příliš restriktivní nastavení může blokovat legitimní skripty nebo externí služby.
Změny je vhodné nejprve otestovat například ve staging prostředí a bezpečnostní pravidla zavádět postupně, aby nedošlo k omezení funkčnosti produkčního webu.