Stručně: Statický web se skládá z hotových souborů HTML, CSS a obrázků, které webový server jen doručuje. Protože na serveru neběží PHP ani databáze, zranitelnosti jako PHP2Shell, SQL injection nebo vložené webshelly jako riziko do značné míry odpadají. Pro bezpečnost statického webu se naopak počítají jiné věci: chráněné přístupy k hostingu, doméně a build nástrojům, udržované závislosti a pečlivě vybrané cizí služby. Hodí se především pro weby, které se zřídka mění a nepotřebují zákaznické účty.
Proč se tato otázka klade právě teď
PHP2Shell mnoha firmám ukázalo, kolik visí na jediné komponentě. Firemní web s deseti stránkami, aktualizovaný jednou za čtvrtletí, běžel na stejném PHP jako velký internetový obchod a byl tak vystaven téže kritické zranitelnosti. Podle zpráv médií dokonce úřady a obce weby preventivně odstavily.
Nabízí se otázka: Potřebujeme pro náš web na serveru vůbec PHP? U mnoha malých a středních podniků zní upřímná odpověď: pro doručování často ne. PHP při každém zobrazení generuje stránku znovu, ačkoli se obsah týdny nezměnil. Jak to technicky probíhá, popisuje Jak PHP vytváří webovou stránku. Co zranitelnost sama znamená, vysvětluje Co je PHP2Shell?.
Jak statický web funguje
U statického webu se stránka nevytváří při návštěvě, ale předem. Generátor statických stránek, například Hugo, Jekyll nebo Eleventy, vezme texty, obrázky a šablony a sestaví z nich hotové soubory. Tyto soubory se nahrají na jednoduchý webový server nebo do content delivery network, tedy distribuované sítě pro doručování.
Pro redaktory může před tím stát nástroj pro úpravy, který přijímá změny a spouští nové sestavení. Částečně se k tomu používá takzvané headless CMS, které jen spravuje obsah a samo nemusí být veřejně dostupné. Návštěvník nic z toho nevidí; dostává jen hotové soubory.
Statický web a bezpečnost v porovnání
| Kritérium | Dynamické CMS v PHP | Statický web |
|---|---|---|
| Programová logika na veřejném serveru | Ano, při každém zobrazení | Ne |
| Riziko zranitelností v interpretu PHP | Ano, jako u PHP2Shell | Na doručovacím serveru odpadá |
| Veřejně připojená databáze | Ano | Ne |
| Typické vstupní brány | Pluginy, přihlášení administrátora, nahrávání, server | Přístupy k hostingu, doméně, build systému, cizí služby |
| Formuláře, vyhledávání, zákaznický účet | Zabudované | Jen přes externí služby nebo samostatné funkce |
| Pracnost správy pro redaktory | Nízká, zavedené rozhraní | Závisí na redakčním nástroji |
| Údržba | Pravidelné aktualizace CMS, pluginů a PHP | Aktualizace build nástrojů a závislostí |
| Vhodnost | E-shopy, portály, mnoho redaktorů, časté změny | Firemní weby, landing pages, dokumentace |
Tabulka ukazuje: Útočná plocha se přesouvá, nemizí. Místo veřejně dostupného serveru s PHP musíte chránit účet u poskytovatele hostingu, doménu, build pipeline a případně redakční nástroj.
Jaká rizika u statických webů zůstávají
Za prvé přístupy. Kdo převezme účet hostingu, přístup k doméně nebo repozitář s kódem, může web měnit, a to zcela bez PHP. Dvoufázové přihlášení a osobní účty jsou proto povinností.
Za druhé závislosti. Generátory a šablony často přinášejí mnoho balíčků, například z npm. Je třeba je udržovat aktuální, protože kompromitovaná závislost může při sestavování zapsat škodlivý kód do hotových souborů. Jak to zorganizovat, popisuje Udržovat závislosti aktuální.
Za třetí cizí služby. Služby formulářů, vyhledávání, analytické nástroje a zapojené skripty běží v prohlížeči návštěvníků nebo na cizích serverech. Každá z těchto služeb je vztahem důvěry, i z hlediska ochrany osobních údajů.
Za čtvrté strana prohlížeče. I statická stránka by měla nastavovat bezpečnostní hlavičky, například Content-Security-Policy, která určuje, které skripty smějí být načteny. Základy najdete v Bezpečnostní hlavičky pro weby.
Před přechodem ověřte, jaké funkce váš web skutečně používá. Často jich je méně, než se myslí: stránky, obrázky, kontaktní formulář. Pak je cesta ke statickému webu kratší, než se zprvu zdá.
Pro koho se přechod vyplatí a pro koho ne
Dobře se statický web hodí pro firemní stránky přehledného rozsahu, landing pages pro kampaně, dokumentaci produktů a kariérní stránky. Přechod se vyplatí zvlášť tehdy, pokud dosavadní web běží na staré verzi PHP a upgrade by byl stejně na řadě.
Méně se hodí pro internetové obchody, zákaznické portály, rezervační systémy a weby s mnoha redaktory, kteří publikují denně. Tam zůstává smysluplný dynamický systém. Pomoci může kombinace: Obchod zůstane dynamický a dobře zabezpečený, rádci a firemní stránky se doručují staticky.
V krizi se ukazuje často podceňovaná výhoda. Protože hotové soubory lze kdykoli znovu sestavit ze šablon a obsahu, lze zmanipulovaný web rychle vrátit na známý, čistý stav. Předpokladem je, aby obsah a šablony ležely v chráněném repozitáři, změny byly dohledatelně zaznamenávány a nikdo soubory na serveru neupravoval přímo.
Dodavatele bezpečnosti pro přechod nutně nepotřebujete; může ho převzít agentura nebo vývojář. Pokud byl dosavadní web kompromitován, měl by se ale obsah před převzetím prověřit. Tím se zabývá Změnit CMS po hacku?.
Jak konkrétně pomáhá PHP SOS?
- Kontrolujeme, jaké funkce váš web skutečně potřebuje, a otevřeně říkáme, zda se statické řešení hodí.
- Při přechodu zabezpečujeme přístupy k hostingu, doméně a build systému dvoufázovým přihlášením a osobními účty.
- Kontrolujeme cizí služby a nastavujeme bezpečnostní hlavičky, aby byl nový web dobře chráněn i v prohlížeči.
- U zůstávajících systémů s PHP přebíráme aktualizace a monitoring ve smlouvě o bezpečnostní údržbě.
Závěr
Statický web není všelék, ale pro mnoho firemních stránek nejjednodušší způsob, jak se zbavit celé třídy rizik. Tam, kde neběží PHP, PHP2Shell nic nezmůže. Získaná bezpečnost ale vydrží jen tehdy, pokud se přístupy, závislosti a cizí služby berou stejně vážně jako dříve server.
Časté dotazy
Dá se statický web přesto hacknout?
Ano. Odpadá serverová programová logika, a tím velká třída útoků. Napadnutelné zůstávají přístupy k hostingu, doméně a build systému, zapojené cizí služby a nástroje, jimiž se stránka vytváří.
Může mít statický web kontaktní formuláře?
Ano, přes externí službu formulářů nebo malou, odděleně provozovanou funkci. Zpracování údajů pak leží u této služby. Ujasněte si ochranu osobních údajů a zpracování osobních údajů, než ji zapojíte.
Mohou redaktoři statický web sami spravovat?
S vhodným redakčním nástrojem ano. Mnoho řešení nabízí rozhraní pro úpravy, z něhož se stránka poté znovu vygeneruje. Pro týmy, které denně mění mnoho obsahu, je ale klasické CMS často pohodlnější.
Vyplatí se přechod pro internetový obchod?
Většinou ne úplně. Košík, zákaznický účet a platba potřebují serverovou logiku. Možné je doručovat statickou formou části, jako jsou rádce nebo firemní stránky, a obchod provozovat odděleně.