Bezpečnostné hlavičky HTTP, ktoré má posielať každý firemný web
Bezpečnostné hlavičky HTTP sú pokyny, ktoré váš webový server posiela s každou stránkou. Hovoria prehliadaču, ako má s webom zaobchádzať: vždy používať HTTPS, nedovoliť iným webom vložiť vaše stránky do rámca, neodhadovať typ súboru a načítavať skripty len z miest, ktorým dôverujete. Web nespomalia a nastavujú sa raz, v konfigurácii servera alebo CDN.
Stručne pre väčšinu firemných webov: posielajte Strict-Transport-Security, Content-Security-Policy (aspoň s frame-ancestors), X-Content-Type-Options, Referrer-Policy a Permissions-Policy, nastavte cookies so správnymi príznakmi a odstráňte hlavičky, ktoré prezrádzajú verzie vášho softvéru. Odporúčané hodnoty nižšie vychádzajú z OWASP HTTP Headers Cheat Sheet a MDN.
Chýbajúca hlavička sama osebe len zriedka znamená vážny problém. Hlavičky však prezradia, ako starostlivo je web nastavený, a zatvárajú cestu celým skupinám útokov na strane prehliadača.
Ako overiť svoje hlavičky
Vypýtajte si od servera hlavičky úvodnej stránky:
curl -sI https://yourcompany.com/
Overte každý názov hostiteľa, nielen hlavný: e-shop, prihlásenie, zákaznícky portál a aj staré testovacie servery, ktoré ešte odpovedajú. Hlavičky nastavené v aplikácii často chýbajú na chybových stránkach, presmerovaniach a statických súboroch, preto otestujte niekoľko rôznych adries.
Hlavičky, ktoré by mal web posielať
Strict-Transport-Security (HSTS)
Prikáže prehliadaču, aby na vašej doméne určitý čas používal len HTTPS, takže návštevníka nemožno potichu presmerovať na nešifrované HTTP.
Strict-Transport-Security: max-age=63072000; includeSubDomains
max-age sa udáva v sekundách. includeSubDomains pridajte, až keď všetky subdomény fungujú cez HTTPS. Ak chcete doménu zaradiť do zoznamu preload v prehliadačoch, hstspreload.org vyžaduje max-age aspoň 31536000 (1 rok), includeSubDomains a preload. Preload sa ťažko vracia späť, preto ho pridajte až nakoniec.
Content-Security-Policy (CSP)
Určuje zdroje, z ktorých smie stránka načítať skripty, štýly, obrázky a rámce. Dobrá politika je najsilnejšia obrana proti cross-site scriptingu na strane prehliadača, musí však zodpovedať vášmu webu. Začnite v režime len hlásenia cez Content-Security-Policy-Report-Only, sledujte, čo by sa zablokovalo, a až potom ju vynucujte.
Kým nemáte úplnú politiku, pomôže aj jediná jednoduchá direktíva:
Content-Security-Policy: frame-ancestors 'self'
frame-ancestors určuje, ktoré weby smú vaše stránky vkladať, a tým blokuje clickjacking. Musí sa posielať ako hlavička, v značke <meta> nefunguje.
X-Frame-Options
Starší spôsob, ako zablokovať vkladanie do rámca. OWASP odporúča všade, kde sa dá, frame-ancestors a X-Frame-Options: DENY (alebo SAMEORIGIN) ako záložné riešenie pre staršie prehliadače.
X-Content-Type-Options
X-Content-Type-Options: nosniff
Zabráni prehliadaču odhadovať typ súboru, takže nahraný súbor sa nespustí ako skript. Dbajte, aby bola hlavička Content-Type správne nastavená na celom webe.
Referrer-Policy
Referrer-Policy: strict-origin-when-cross-origin
Obmedzuje, akú časť adresy prehliadač prezradí inému webu, keď návštevník klikne na odkaz. Je to dôležité, keď adresy obsahujú čísla objednávok, tokeny alebo hľadané výrazy.
Permissions-Policy
Permissions-Policy: geolocation=(), camera=(), microphone=()
Vypne funkcie prehliadača, ktoré váš web nepoužíva, takže podvrhnutý skript si ich nemôže vyžiadať.
Aj cookies potrebujú príznaky
Relačné cookies nastavujte s Secure (len cez HTTPS), HttpOnly (nečitateľné z JavaScriptu) a SameSite=Lax alebo Strict:
Set-Cookie: session=...; Secure; HttpOnly; SameSite=Lax; Path=/
Skontrolujte aj atribút Domain. Cookie s rozsahom .yourcompany.com prečíta každá subdoména, a to je podstatné, ak by niektorú z nich niekto prevzal cez zabudnutý záznam DNS.
Hlavičky, ktoré treba odstrániť alebo prestať používať
ServeraX-Powered-Bys číslami verzií, napríkladApache/2.4.41aleboPHP/7.4.3. Každému presne prezradia, aký softvér a akú verziu má hľadať. OWASP odporúčaX-Powered-Byodstrániť aServernechať bez podrobností.X-XSS-Protection. MDN ju označuje za zastaranú a neštandardnú a upozorňuje, že na inak bezpečných weboch môže spôsobiť problémy. OWASP odporúča nenastavovať ju, prípadne nastaviťX-XSS-Protection: 0, a spoliehať sa na CSP.Expect-CT. OWASP radí nepoužívať ju a odstrániť ju z existujúcich konfigurácií.
Kde ich nastaviť
Hlavičky nastavte na jednom mieste, ktoré pokryje každú odpoveď: vo webovom serveri (nginx add_header ... always;, Apache Header always set), v CDN alebo v nastaveniach hlavičiek hostingovej platformy. Kľúčové slovo always v nginx je dôležité: bez neho sa hlavičky pridajú len k úspešným odpovediam a presmerovaniam, nie k chybovým stránkam.
Krátky kontrolný zoznam
- Spustite
curl -sIpre každý názov hostiteľa, ktorý vlastníte. - Pridajte HSTS,
X-Content-Type-Options,Referrer-Policy,Permissions-Policyaframe-ancestors. - Úplnú CSP nasaďte najprv v režime len hlásenia.
- Relačným cookies nastavte
Secure,HttpOnlyaSameSite. - Odstráňte čísla verzií zo
ServeraX-Powered-Bya vyhoďteX-XSS-ProtectionaExpect-CT. - Po každej zmene servera, CDN alebo platformy kontrolu zopakujte.
Keď už upravujete konfiguráciu servera, overte aj to, že na ňom nie sú prístupné súbory .env, .git alebo zálohy.
Kde pomáha Datahorses
Datahorses každý deň stráži vaše weby zvonku a kontroluje to, čo vidia prehliadače aj útočníci: chýbajúce bezpečnostné hlavičky, cookies bez Secure, HttpOnly alebo SameSite, servery, ktoré prezrádzajú svoje verzie, a zmiešaný obsah HTTP na stránkach s HTTPS. Do vašich systémov nevstupujeme a žiadne prístupy nepotrebujeme. Každé zistenie obsahuje presnú zmenu konfigurácie pre vášho vývojára. Pozrite sa, čo všetko strážime, alebo si vyžiadajte ponuku.
Ďalšie články
Požiadavky Gmailu a Yahoo na odosielateľov: čo sa zmenilo v roku 2024 a čo skontrolovať
Od februára 2024 Gmail a Yahoo očakávajú od hromadných odosielateľov overenú a zarovnanú poštu a jednoduché odhlásenie. Čo pravidlá hovoria a ako skontrolovať vlastnú doménu.
Expirácia certifikátu SSL/TLS: prečo pre ňu stále padajú weby
Pri expirovanom certifikáte uvidia návštevníci namiesto webu varovanie prehliadača cez celú obrazovku a vypadnúť môžu aj API a pošta. Platnosť sa skracuje, takže obnova musí fungovať zakaždým.
PHP2Shell: ktoré verzie PHP sú opravené a ako zistiť tú vašu
Projekt PHP 21. 10. 2026 opravil 2 kritické chyby. Prinášame prehľad verzií s opravou, postup, ako zistiť, čo hlási váš server, a na čo sa opýtať poskytovateľa hostingu.