Váš staging už znají. Jak zabezpečit server, HTTPS a cloud před spuštěním webu
Ve chvíli, kdy pro testovací server vydáte HTTPS certifikát, o něm vědí i útočníci. Každý certifikát se zapíše do veřejných logů Certificate Transparency a automatické skenery je čtou v reálném čase. Výzkumníci z Kalifornské univerzity v Santa Barbaře nechali 200 dní běžet návnadové servery a první sondy zachytili jen pár sekund po zveřejnění certifikátu (UCSB, IEEE EuroS&P 2023). Studie je tři roky stará, skenerů od té doby spíš přibylo.

Adresa staging.vasefirma.cz, na kterou nikde neodkazujete, tedy tajná není. A útočníci jsou rychlí i jinak: kritickou chybu React2Shell v Reactu a Next.js začali zneužívat během několika hodin od zveřejnění (AWS). Firmám přitom oprava aktivně zneužívané zranitelnosti trvá v mediánu 43 dní (Verizon DBIR 2026, podle watchTowr).

Server, doména a cloud proto musí být nastavené dřív, než na ně pustíte první uživatele. Celý checklist se 105 body pro aplikaci je v článku Spouštíte webovou aplikaci? Těchto 105 věcí zkontrolujte dřív než útočníci.
01HTTPS, certifikáty, doména a hlavičky
Certifikáty
Od 15. března 2026 platí veřejný TLS certifikát nejvýš 200 dní, od března 2027 to bude 100 dní a od března 2029 jen 47 dní (CyberInsider). Kdo obnovuje ručně, jednou zapomene.
- Do 14. 3. 2026398
- Od 15. 3. 2026200
- Od 15. 3. 2027100
- Od 15. 3. 202947
Harmonogram CA/Browser Forum (CyberInsider).
- Obnovu zautomatizujte přes ACME (Let's Encrypt, ZeroSSL nebo certifikáty vašeho CDN).
- Hlídejte expiraci s upozorněním aspoň 14 dní předem. I automatika se umí tiše rozbít.
- Přidejte do DNS záznam CAA, který určí, které certifikační autority smějí pro doménu vydávat certifikáty.
- Sledujte logy Certificate Transparency pro vlastní doménu (crt.sh, Cert Spotter). Dozvíte se o certifikátu, který někdo vydal bez vašeho vědomí.
TLS a postkvantové šifrování
Povolte jen TLS 1.2 a 1.3. Prohlížeče Chrome, Edge a Firefox už navíc samy vyjednávají postkvantovou výměnu klíčů a v dubnu 2026 přes ni šly víc než dvě třetiny lidského provozu v síti Cloudflare (Encryption Consulting, podle Cloudflare). Chrání proti útoku „nahraj teď, rozšifruj později“, kdy si někdo provoz uloží a rozluští ho, až bude mít kvantový počítač. Za CDN to máte většinou vyřešené. Na vlastním serveru ověřte, že vaše verze OpenSSL a webového serveru podporuje skupinu X25519MLKEM768.
Doména a DNS
- Smažte záznamy CNAME, které vedou na zrušené služby (starý Heroku, GitHub Pages, bucket S3). Útočník si službu založí znovu a na vaší subdoméně servíruje, co chce.
- Nastavte SPF, DKIM a DMARC, i když z domény zatím e-maily neposíláte. Jinak ji podvodníci zneužijí pro falešné zprávy vašim zákazníkům. Jak takové zprávy poznat, popisuje článek Podvodné SMS a e-maily.
- Účet u registrátora chraňte dvoufázovým ověřením a zámkem převodu domény. Kdo ovládne DNS, ovládne celou aplikaci.
Bezpečnostní hlavičky
Hlavičky řeknou prohlížeči, co smí a nesmí. Nasazení zabere hodinu a zastaví celé třídy útoků.
| Hlavička | Doporučená hodnota | Proti čemu chrání |
|---|---|---|
| Strict-Transport-Security | max-age=31536000; includeSubDomains | Stažení na nešifrované HTTP |
| Content-Security-Policy | Striktní politika s nonce | XSS a vkládání cizích skriptů |
| X-Content-Type-Options | nosniff | Spuštění souboru jako jiného typu |
| Referrer-Policy | strict-origin-when-cross-origin | Únik adres s tokeny na cizí weby |
| Permissions-Policy | camera=(), microphone=(), geolocation=() | Zneužití funkcí prohlížeče |
| Cross-Origin-Opener-Policy | same-origin | Útoky přes otevřená okna |
Proti vložení stránky do neviditelného rámu (clickjacking) slouží direktiva frame-ancestors v CSP, pro starší prohlížeče přidejte X-Frame-Options: DENY. Hlavičku X-XSS-Protection vynechte, moderní prohlížeče ji ignorují.
CSP spusťte nejdřív v režimu Content-Security-Policy-Report-Only, týden sbírejte hlášení a pak ji přepněte na vynucování. Striktní CSP s nonce musí generovat aplikace, protože nonce se mění s každou odpovědí a aplikace ho vkládá do každé značky script. Next.js to umí přes proxy (dřív middleware). Kdyby CSP nastavil i nginx, platily by dvě politiky zároveň a prohlížeč by skripty zablokoval. Ostatní hlavičky stačí nastavit na serveru, ukázka pro nginx:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "DENY" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Cross-Origin-Opener-Policy "same-origin" always;Jak to ověříte
Zadejte adresu do MDN HTTP Observatory a SSL Labs. Oba nástroje jsou zdarma a za minutu ukážou, co chybí. Cílem je známka A nebo lepší. HSTS preload zapněte, až když víte jistě, že všechny subdomény umí HTTPS. Vrátit ho trvá měsíce.
02Server a cloud
V cloudu bývá otevřené víc, než čekáte. IBM ve zprávě za rok 2026 uvádí pro region Blízkého východu mezi třemi faktory, které nejvíc zvedají cenu úniku, špatně spravované klíče a příliš široká oprávnění (IBM Newsroom).
Účty a oprávnění
- Hlavní účet cloudu (root v AWS, superadministrátor v Google Cloud, globální administrátor v Azure) má hardwarový klíč nebo passkey a na běžnou práci se nepoužívá.
- Produkce běží v jiném účtu nebo projektu než vývoj a testování.
- Každá služba i každý člověk má jen oprávnění, která opravdu potřebuje. AdministratorAccess nebo Owner pro aplikaci je chyba.
- Lidé se přihlašují přes SSO. Když někdo odejde, zrušíte mu přístup na jednom místě.
Síť
- Databáze, Redis a fronty nejsou dostupné z internetu, poslouchají jen v privátní síti.
- Z internetu je otevřený jen port 443 a port 80 kvůli přesměrování. SSH a RDP jdou přes VPN, bastion, AWS Systems Manager nebo Tailscale.
- Kubernetes dashboard, Grafana, phpMyAdmin ani Adminer nejsou veřejné.
- Buckety (S3, Google Cloud Storage, Azure Blob) mají blokovaný veřejný přístup. Soubory sdílejte přes podepsané odkazy s omezenou platností.
Firebase a Supabase
Zkontrolujte pravidla u každé tabulky a kolekce. Veřejný klíč v aplikaci smí číst jen to, co mu pravidla dovolí. Tabulka bez row-level security nebo pravidlo „allow read, write: if true“ znamená, že data může číst a měnit kdokoli.
Staging
- Staging je za přihlášením nebo dostupný jen z vašich IP adres.
- Nejsou na něm produkční osobní údaje. Pokud potřebujete realistická data, anonymizujte je.
- Staré testovací servery, zapomenutá preview nasazení a opuštěné subdomény vypněte. Nikdo je neaktualizuje, a proto je útočníci milují.
Údržba a náklady
- Operační systém a runtime (Node.js, PHP, Python, Java) mají podporovanou verzi a bezpečnostní aktualizace se instalují aspoň jednou týdně.
- Nastavte upozornění na neobvyklé výdaje. Ukradený klíč se často použije k těžbě kryptoměn a první známkou je účet za tisíce dolarů.
- Infrastrukturu popisujte kódem (Terraform, OpenTofu, CloudFormation) a kontrolujte ji nástrojem Checkov. Chybu v konfiguraci pak odhalí revize dřív, než se dostane do produkce.
Jak to ověříte
Pusťte zdarma dostupný Prowler (AWS, Azure, Google Cloud) nebo AWS Security Hub či Microsoft Defender for Cloud. Z počítače mimo firmu zkuste nástrojem nmap, které porty server vystavuje. Odpovídat by měly jen 80 a 443.
03Data a zálohy
Data, která nemáte, vám nikdo neukradne. A data, která máte, musíte umět obnovit: ransomware se podle Verizonu objevil ve 48 % analyzovaných úniků (NHI Mgmt Group, podle Verizon DBIR 2026).
Minimalizace a šifrování
- U každého pole ve formuláři si odpovězte, proč ho potřebujete. Rodné číslo skoro nikdy nepotřebujete.
- Stanovte, jak dlouho data držíte, a mazání zautomatizujte.
- Spojení aplikace s databází, cache a frontami běží přes TLS i uvnitř infrastruktury.
- Šifrování disků a databází zapněte u všech služeb. V cloudu je to většinou jedno zaškrtnutí.
- Zdravotní údaje, čísla dokladů a bankovní spojení šifrujte i v aplikaci, s klíči v KMS. Kdo ukradne zálohu databáze, uvidí jen nesmyslné znaky.
- Platební karty neukládejte vůbec. Platbu nechte na bráně (Stripe, GoPay, Comgate, Adyen), která vám vrátí jen token.
Zálohy
- Tři kopie dat na dvou různých médiích, z toho jedna mimo hlavní prostředí (pravidlo 3-2-1).
- Aspoň jedna kopie je neměnná (object lock) nebo v odděleném účtu. Ransomware se dnes snaží smazat zálohy jako první.
- Kdo ovládne produkci, nesmí umět smazat zálohy. Přístupové údaje k nim jsou jiné.
- Zálohy jsou šifrované.
- Obnovu vyzkoušejte před spuštěním a pak aspoň jednou za čtvrt roku. Záloha, kterou jste nikdy neobnovili, je jen naděje.
- Stanovte, kolik dat si můžete dovolit ztratit (RPO) a jak dlouho smíte být mimo provoz (RTO). Podle toho nastavte četnost záloh.
Skripty třetích stran
Analytika, chatovací okna a reklamní pixely běží na vašem webu s přístupem ke všemu, co uživatel napíše. Načítejte jen ty, které opravdu potřebujete, ideálně s atributem integrity (SRI). Na stránkách s platbou a přihlášením jich mějte co nejméně.
Jak to ověříte
Vezměte včerejší zálohu a obnovte ji do čistého prostředí. Změřte, jak dlouho to trvalo a jestli nad obnovenými daty aplikace funguje.
04Logování a monitoring
Firmám trvá v průměru 247 dní, než únik odhalí a zastaví, z toho 183 dní jen na to, aby si ho všimly (SecureWorld, podle IBM 2026). Bez logů se o útoku dozvíte od zákazníků, od novinářů nebo od útočníka, který chce výkupné.
- Než firma únik odhalí183
- Než ho pak zastaví64
- Celkem247
IBM Cost of a Data Breach 2026 (SecureWorld).
Co logovat
- Přihlášení úspěšná i neúspěšná, změny hesla, e-mailu a dvoufázového ověření.
- Změny oprávnění, akce administrátorů, přístupy k citlivým datům a exporty.
- Odmítnuté požadavky (403), nápadné množství chyb validace a překročené limity.
- Platby a změny konfigurace.
Každý záznam má čas v UTC, ID uživatele, IP adresu a ID požadavku. Logy posílejte do centrálního systému mimo server (Grafana Loki, Elastic, Datadog, Better Stack, CloudWatch). Útočník, který ovládne server, smaže logy na něm jako první.
Co nikdy nelogovat
Hesla, tokeny, ID relací, API klíče, celá čísla karet a zbytečné osobní údaje. Nejčastěji se tam dostanou při ladění, kdy někdo loguje celé požadavky. Log s hesly je sám o sobě únik dat.
Upozornění
- Nastavte pravidla na podezřelé vzorce: desítky neúspěšných přihlášení za minutu, přihlášení administrátora z nové země, prudký nárůst chyb 500 nebo exportů.
- Upozornění musí někdo číst. Určete, kdo je dostává mimo pracovní dobu, a vyzkoušejte, že opravdu dorazí.
- Nasaďte externí monitoring dostupnosti (UptimeRobot, Better Stack, Checkly) a sledování chyb (Sentry).
Jak to ověříte
Přihlaste se špatným heslem a do minuty najděte záznam v centrálních logech. Pak v logech za poslední týden vyhledejte slova password, token a authorization.
05DDoS
Cloudflare za první pololetí 2026 odrazil 23,2 milionu síťových DDoS útoků a 935 z nich přesáhlo 1 Tbps (Cloudflare). Přes 90 % síťových útoků skončí do deseti minut (Cloudflare). Než byste stihli zareagovat ručně, je po všem, a web mezitím leží.
- Postavte aplikaci za CDN s ochranou proti DDoS (Cloudflare, Akamai, Fastly, AWS CloudFront se Shield, Bunny). Základní ochrana bývá zdarma.
- Skryjte skutečnou IP adresu serveru a povolte na něm provoz jen z adres CDN. Jinak útočník CDN obejde a jde rovnou na server.
- Zapněte webový firewall (WAF) se sadou OWASP Core Rule Set nebo spravovanými pravidly CDN. Nejdřív v režimu logování, ať nezablokujete zákazníky.
- Limity počtu požadavků nastavte i v aplikaci, hlavně pro přihlášení, registraci a vyhledávání.
Jak to ověříte
Na testovacím prostředí pošlete nástrojem k6 nebo hey několik tisíc požadavků a sledujte, jestli se zapnou limity. Pak zkuste otevřít aplikaci přímo přes IP adresu serveru. Pokud se načte, CDN jde obejít.
06Checklist

HTTPS, doména a hlavičky
- Certifikát se obnovuje automaticky a expirace je hlídaná.
- Povolené je jen TLS 1.2 a 1.3, SSL Labs dává známku A nebo lepší.
- HTTP přesměrovává na HTTPS a HSTS je nastavené.
- CSP běží aspoň v režimu Report-Only s termínem přechodu na vynucování.
- Nastavené jsou X-Content-Type-Options, Referrer-Policy, Permissions-Policy a frame-ancestors.
- DNS má záznam CAA, doména má SPF, DKIM a DMARC.
- Žádný CNAME nevede na zrušenou službu.
- Registrátor a DNS mají dvoufázové ověření a zámek převodu.
Server a cloud
- Produkce je v odděleném účtu cloudu.
- Hlavní účet cloudu má hardwarový klíč nebo passkey.
- Databáze, cache a fronty nejsou dostupné z internetu.
- Veřejné jsou jen porty 80 a 443.
- Buckety mají blokovaný veřejný přístup.
- Pravidla Firebase nebo Supabase jsou zkontrolovaná u každé tabulky.
- Staging je za přihlášením a bez produkčních osobních údajů.
- Operační systém a runtime mají podporovanou verzi.
- Upozornění na neobvyklé výdaje je zapnuté.
Data a zálohy
- Aplikace sbírá jen potřebná data a má lhůty uchování.
- Spojení s databází je šifrované, disky a citlivá pole také.
- Platební karty zpracovává brána.
- Aspoň jedna záloha je neměnná nebo v odděleném účtu.
- Obnova ze zálohy je vyzkoušená a změřená.
Logy a DDoS
- Důležité události se logují do centrálního systému mimo server.
- V logech nejsou hesla ani tokeny.
- Upozornění chodí konkrétní osobě a jsou otestovaná.
- Běží monitoring dostupnosti a sledování chyb.
- Aplikace je za CDN a server přijímá provoz jen z CDN.
- WAF je zapnutý.
Chyby v kódu řeší článek Stačí změnit číslo v adrese, klíče a závislosti článek Stačil jeden npm install.
07Celá série o bezpečnosti webové aplikace
Série pěti článků pokrývá celou aplikaci, od kódu přes server až po povinnosti vedení:
- Checklist se 105 body pro celou aplikaci
- Chyby v kódu, přes které unikají data
- API klíče, závislosti a útoky přes npm
- Server, HTTPS, cloud, zálohy a logy (právě čtete)
- Co musí zařídit vedení: GDPR, NIS2, CRA a pentest
08Časté otázky
Jak dlouho platí SSL certifikát v roce 2026?
Nejvýš 200 dní, pokud byl vydaný od 15. března 2026. Od března 2027 to bude 100 dní a od března 2029 jen 47 dní (CyberInsider).
Stačí Cloudflare na zabezpečení webu?
Ne. CDN a webový firewall zastaví DDoS a běžné automatické útoky. Neodhalí ale, že uživatel čte cizí fakturu nebo že máte v kódu uniklý klíč. To musíte opravit v aplikaci.
Musí být testovací server za heslem?
Ano. Adresa se objeví ve veřejných logech Certificate Transparency hned po vydání certifikátu a skenery ji najdou během sekund. Tajná subdoména žádnou ochranu nedává.
Jak rychle zjistím, jestli je web dobře nastavený?
Za pár minut. Zadejte adresu do MDN HTTP Observatory, která zkontroluje bezpečnostní hlavičky, a do SSL Labs, které prověří certifikát a TLS. Oba nástroje jsou zdarma.
Co je pravidlo zálohování 3-2-1?
Tři kopie dat na dvou různých typech úložiště, z toho jedna mimo hlavní prostředí. Proti ransomwaru přidejte aspoň jednu kopii, kterou nejde přepsat ani smazat.
Musím řešit postkvantové šifrování?
Pokud web běží za CDN, většinou ne, protože prohlížeče i velká CDN už postkvantovou výměnu klíčů používají samy. U vlastního serveru ověřte, že jeho TLS knihovna podporuje skupinu X25519MLKEM768.
09Zdroje
Údaje platí k 27. září 2026.
- UCSB: Certificate Transparency jako zdroj cílů (IEEE EuroS&P 2023)
- AWS: rychlé zneužití chyby React2Shell (CVE-2025-55182)
- Verizon DBIR 2026, shrnutí watchTowr
- Verizon DBIR 2026, shrnutí NHI Mgmt Group
- CyberInsider: TLS certificate lifespans reduced to 47 days by 2029
- Encryption Consulting: Post-Quantum Cryptography Support in Web Browsers
- IBM Newsroom: Cost of a Data Breach 2026, Blízký východ
- SecureWorld: IBM Cost of a Data Breach 2026
- Cloudflare DDoS Threat Report H1 2026