Přejít k navigační liště

Zdroják » Zprávičky » Jak vynutit přenos po HTTPS pomocí hlavičky

Jak vynutit přenos po HTTPS pomocí hlavičky

Zprávičky ‐ ‐ Různé ‐

Nálepky:

Mozilla Firefox implementuje (ve verzi 4) HTTP hlavičku Strict-Transport-Security , která vynutí komunikaci přes rozhraní HTTPS. Pomocí této hlavičky může web dát prohlížeči najevo, že má být kontaktován přes HTTPS, takže prohlížeč může přímo případné „http://“ opravit na „https://“ dřív než pošle dotaz. Podrobnosti přináší Mozilla Hacks.

Komentáře

Odebírat
Upozornit na
guest
2 Komentářů
Nejstarší
Nejnovější Nejvíce hlasů
.

Na to se dá použít $_SERVER[‚HTTPS‘] a 301 Moved permanently, a je to.

MilanK

Ne, kvůli tomu to není.

301 z HTTP na HTTPS se dělá běžně, ta hlavička Strict-Transport-Security ale slouží něčemu jinému.

Představte si server http://www.banka.cz. Když se do této banky přihlašujete poprvé, zadáte http://www.banka.cz, browser nejprve zkusí HTTP, dostane 301, přejde na HTTPS a dostane Strict-Transport-Security, tj. obdobu cookie, která nastaví, že od této chvíle do budoucna bude server http://www.banka.cz vždy kontaktovat rovnou přes HTTPS.

Za měsíc, když se díváte znovu do banky, zadáte opět http://www.banka.cz, ale browser rovnou přejde na HTTPS.

Hlavička Strict-Transport-Security chrání proti MITM útoku, který se ale koná až po tom měsíci. Je to jistě častější scénář: útočník se na Vás zaměří v době, kdy už jste server http://www.banka.cz aspoň jednou navštívil.

Normálně (bez Strict-Transport-Security) by při druhém a dalším přístupu (po měsíci a pod.) uživatel opět zadal http://www.banka.cz a browser by zkusil nejprve HTTP. Požadavek (request) se ale nedostane až k serveru banka.cz, zachytí ho útočník a sám se místo toho kontaktuje s bankou přes HTTPS (udělá jakousi proxy HTTP->HTTPS). Pokud si nevšimnete, že Váš broser nepřešel na HTTPS (např. nezežloutl adresní řádek), tak komunikujete celou dobu s bankou přes tohoto útočníka, který vidí veškerou komunikaci. Hlavička Strict-Transport-Security Vás proti takovému útoku ochrání, předpokladem ale je (znovu opakuji) že alespoň jedno předchozí spojení s bankou musí být bez MITM.

Strict-Transport-Security je jistě konečně významným krokem správným směrem, já bych tam ale ještě doplnil informace o certifikátu, kterým si přeje banka.cz být autorizována, tím by se eliminovaly i útoky, kde MITM zfalšuje certifikát (jak se před pár dny diskutovalo tady na Rootu – hledejte např. Certificate Patrol).

Aby tato opatření fungovala, je nezbytné, aby přes HTTPS byla přístupná a šifrovaná celá session s bankou. Selhávají totiž v případě, že uživatel pro přístup do banky používá URL nějakého HTTP serveru a z něj se teprve kliknutím dostává do „zabezpečené zóny“ (příklad: http://www.banka.cz jsou normální HTTP stránky banky, na kterých je klik na „Přihlášení na účet“, který uživatele přivede na HTTPS server secure-praha-312.banka.cz, kde teprve vyplňuje jméno/heslo). Uživatel to druhé delší URL nepoužije, bude přistupovat k účtu přes http://www.banka.cz a MITM si bude mnout ruce…

WebSocket: Jak dostat webovou aplikaci do reálného času

Chat, živé notifikace, společná úprava dokumentu nebo průběžně aktualizované kurzy. Uživatelé dnes čekají, že se webová aplikace změní ve chvíli, kdy se změní data, a ne až po stisknutí klávesy F5. Protokol WebSocket je nejrozšířenější způsob, jak mezi prohlížečem a serverem vytvořit trvalý obousměrný kanál. V článku se podíváme, jak funguje pod kapotou, jak ho použít v prohlížeči i na serveru a na co si dát pozor při nasazení do produkce.

Zahoďte knihovny: dropdowny, tooltipy a přechody stránek jen s HTML a CSS

Rozbalovací menu, tooltip, modální okno a plynulý přechod mezi stránkami. Ještě nedávno čtyři důvody, proč do projektu přidat několik knihoven a desítky kilobajtů JavaScriptu. V roce 2026 už to všechno zvládne prohlížeč sám. Ukážeme si, jak na to s Popover API, CSS anchor positioningem a View Transitions, a také kde mají své limity.

Rok po Shai-Hulud: co se změnilo na npm a co musíte udělat do ledna

Před rokem začal registrem npm procházet samošířící červ Shai-Hulud. Od té doby se útoky na dodavatelský řetězec JavaScriptu staly pravidelnou záležitostí a npm postupně přepisuje pravidla publikování. Projdeme, co se za ten rok stalo, jak dnes bezpečně publikovat balíček, co musíte stihnout do ledna 2027 a jak se bránit jako uživatel balíčků.