Bezpečnostné HTTP hlavičky
Overte si, či má váš web správne nastavené bezpečnostné HTTP hlavičky.
Ako kontrola hlavičiek funguje
Nástroj pošle bežnú HTTPS GET požiadavku na zadanú URL a prečíta hlavičky odpovede - tie isté, ktoré dostáva každý prehliadač. Telo stránky sa neanalyzuje; bezpečnostné hlavičky sú výlučne súčasťou HTTP odpovede.
Následne hľadáme hlavičky, ktoré riadia ochrany na strane prehliadača: Strict-Transport-Security (HSTS), Content-Security-Policy (CSP), X-Frame-Options, X-Content-Type-Options a Referrer-Policy. Každá prítomná hlavička zvyšuje skóre a chýbajúce sú vypísané s vysvetlením rizika, ktoré nechávajú otvorené.
Kontrola nasleduje presmerovania, takže výsledok zodpovedá cieľovej URL. Ak váš web presmerúva z HTTP na HTTPS alebo z holej domény na www, zobrazené hlavičky patria cieľu presmerovania.
Ako čítať výsledky
Skóre je rýchla orientácia, nie certifikácia. Čo je dôležité v praxi:
- HSTS - hovorí prehliadačom, aby pre vašu doménu vždy použili HTTPS. Bežnou praxou je max-age aspoň pol roka; includeSubDomains pridajte iba vtedy, keď každá subdoména beží na HTTPS.
- CSP - najsilnejšia obrana proti XSS, ale aj najťažšia na napísanie. Už základná politika obmedzujúca zdroje skriptov je veľké zlepšenie oproti žiadnej.
- X-Content-Type-Options: nosniff a X-Frame-Options (alebo direktíva frame-ancestors v CSP) - lacné jednoriadkové ochrany proti MIME sniffingu a clickjackingu.
Časté problémy
Hlavička je nastavená, ale hlási sa ako chýbajúca. Reverzná proxy alebo CDN pred aplikáciou môže hlavičky odstrániť alebo prepísať. Porovnajte odpoveď cez curl -I priamo voči origin serveru a voči verejnej URL, aby ste zistili, ktorá vrstva ju zahadzuje.
CSP je prítomná, ale neúčinná. Content-Security-Policy-Report-Only iba zaznamenáva porušenia, nič neblokuje. Hodí sa na testovanie, ale nechráni - keď je záznam hlásení čistý, prepnite na vynucujúcu hlavičku.
Rôzne cesty vracajú rôzne hlavičky. Hlavičky nastavené v middleware aplikácie sa nemusia týkať statických súborov servírovaných priamo webovým serverom ani chybových stránok. Otestujte aj URL statického súboru a stránku 404.
Časté otázky
Ktoré bezpečnostné hlavičky by mal mať každý web?
Rozumný základ: Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options: nosniff, Referrer-Policy a ochrana proti vloženiu do rámca cez X-Frame-Options alebo CSP frame-ancestors. Pri API sa navyše oplatí Cache-Control: no-store na citlivých odpovediach.
Je hlavička X-XSS-Protection ešte potrebná?
Nie. Moderné prehliadače odstránili XSS auditor, ktorý riadila, a v starých prehliadačoch mohla zraniteľnosti dokonca vytvárať. Namiesto nej použite prísnu Content-Security-Policy.
Chráni HSTS už prvú návštevu webu?
Sama osebe nie - prehliadač sa pravidlo dozvie až z prvej HTTPS odpovede. Na pokrytie prvej návštevy zaraďte doménu do HSTS preload zoznamu (hstspreload.org) a použite direktívu preload spolu s includeSubDomains.
Môže nesprávna hlavička pokaziť web?
Áno, dva klasické prípady: príliš prísna CSP zablokuje vlastné skripty alebo inline štýly a HSTS s includeSubDomains rozbije subdoménu, ktorá ešte beží na čistom HTTP. CSP nasadzujte najprv v režime report-only a HSTS začnite s krátkym max-age.
Sledujte zmeny hlavičiek nepretržite
ePulz.io vás upozorní, keď sa hlavička zmení (napríklad po nasadení, ktoré omylom odstránilo CSP).
Začať s ePulz.io →O tomto nástroji
Bezpečnostné hlavičky určujú prehliadaču, ako má chrániť vašich návštevníkov. Tento audit ukáže, či sú HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options a Referrer-Policy skutočne prítomné, a výsledok ohodnotí, takže po nasadení odhalíte medzery typu clickjacking alebo MIME-sniffing.