Spouštíte webovou aplikaci? Těchto 105 věcí zkontrolujte dřív než útočníci
Než pustíte webovou aplikaci na produkci, musíte mít vyřešené čtyři věci: kdo smí k jakým datům, kde leží tajné klíče, jak čisté jsou vaše závislosti a jak poznáte, že na vás někdo útočí. Zbytek, od hlaviček po zálohy a zákony, na nich staví.

Času je méně než kdy dřív. Zneužití zranitelností je podle nejnovější zprávy Verizonu poprvé nejčastější cestou útočníka dovnitř: 31 % případů, zatímco phishing tvoří 16 % a kradená hesla 13 % (Verizon DBIR 2026). Novou doménu přitom skenery najdou pár sekund po vydání certifikátu (UCSB, IEEE EuroS&P 2023). A průměrný únik dat stojí 4,99 milionu dolarů, tedy cca 107 milionů Kč (IBM Cost of a Data Breach 2026).
- Zneužití zranitelnosti31 %
- Phishing16 %
- Kradená hesla13 %
Podíl úniků podle prvního kroku útočníka. Verizon DBIR 2026.
Většina úniků přitom začíná banální chybou: zapomenutým debug režimem, klíčem v repozitáři nebo knihovnou, kterou nikdo neaktualizoval. Checklist se 105 body pokrývá kód, závislosti, server i povinnosti vedení a ke každé oblasti vede podrobný článek s postupem, jak chybu sami odhalit. Údaje platí k 27. září 2026.
01Sedm změn roku 2026, kvůli kterým starý checklist nestačí
| Trend | Co se stalo | Co to znamená pro vás |
|---|---|---|
| Kód píše AI | AI generuje zhruba polovinu commitovaného kódu a v bezpečnostních testech obstojí v průměru jen 56 % jejích výstupů | Kód od AI prochází stejnou revizí a skenerem jako kód od juniora |
| Útoky přes závislosti | Axios v březnu, TanStack v květnu 2026, předtím červ Shai-Hulud s více než 500 napadenými balíčky | Zamčené verze, odklad aktualizací, oddělené klíče v CI/CD |
| Konec dlouhých tokenů | npm 9. prosince 2025 zrušil klasické tokeny a přihlášení platí dvě hodiny | Publikování z CI přes OIDC (trusted publishing) |
| AI agenti v aplikacích | OWASP vydal v prosinci 2025 první Top 10 rizik pro agentní aplikace | Agent smí jen to, co přihlášený uživatel |
| Kratší certifikáty | Od 15. března 2026 platí certifikát nejvýš 200 dní, od března 2029 jen 47 dní | Obnova certifikátů musí běžet automaticky |
| Úniky klíčů k AI službám | Uniklých klíčů k AI službám přibylo za rok 2025 o 81 % | Klíče k modelům patří do správce tajemství, do frontendu nikdy |
| Nové povinnosti hlásit | Od listopadu 2025 platí zákon č. 264/2025 Sb., od 11. září 2026 hlásí výrobci aktivně zneužívané zranitelnosti a závažné incidenty, první varování do 24 hodin | Plán pro případ incidentu s lhůtami a jmény |
Zdroje tabulky: Veracode, červenec 2026, CISA, TanStack, CISA, GitHub Changelog, OWASP GenAI, CyberInsider, The Hacker News, podle GitGuardian, Evropská komise.

Všechny změny spojuje rychlost. Kód vzniká rychleji, útoky přicházejí rychleji a zákony chtějí rychlejší hlášení. Co jde hlídat automaticky, proto nemá záviset na tom, jestli si na to někdo vzpomene.
02Čtyři oblasti, které musíte mít pod kontrolou

Kód aplikace
Narušené řízení přístupu je v OWASP Top 10:2025 znovu na prvním místě (OWASP). Typická chyba: server neověří, jestli faktura číslo 1235 patří přihlášenému uživateli. Do stejné skupiny patří slabé přihlašování, neošetřené vstupy, díry v obchodní logice a AI agenti s příliš širokými právy. Podrobně v článku Stačí změnit číslo v adrese: chyby v kódu, přes které unikají data.
Tajné klíče a závislosti
Jen za rok 2025 skončilo ve veřejných commitech na GitHubu 28,65 milionu hesel, tokenů a API klíčů (GitGuardian). Útočníci je navíc kradou přes napadené knihovny, které si sami nainstalujete. Jak klíče uhlídat a jak nastavit závislosti a CI/CD, popisuje článek Stačil jeden npm install: jak se v roce 2026 kradou API klíče a jak se bránit.
Server, HTTPS a cloud
Kritickou chybu React2Shell v Reactu a Next.js začali útočníci zneužívat během několika hodin od zveřejnění (AWS). Firmám oprava takové chyby trvá v mediánu 43 dní (Verizon DBIR 2026, podle watchTowr). Certifikáty, hlavičky, nastavení cloudu, zálohy, logy a ochranu proti DDoS řeší článek Váš staging už znají. Jak zabezpečit server, HTTPS a cloud před spuštěním webu.
Vedení, zákony a dodavatelé
U regulovaných firem ukládá zákon povinnosti přímo vrcholnému vedení a únik osobních údajů se hlásí do 72 hodin. Penetrační test běžné aplikace vyjde podle ceníku SecurPro obvykle na 40 000 až 90 000 Kč (SecurPro). GDPR, NIS2, Cyber Resilience Act, plán pro případ incidentu a smlouvu s dodavatelem shrnuje článek Únik dat stojí průměrně 107 milionů Kč. Co musí vedení zařídit, než aplikaci spustí.
03Checklist, část 1: Před spuštěním (blokující)
Checklist má tři části. Body v první části spuštění blokují: dokud nejsou splněné, aplikace na produkci nepatří. Druhá část patří do dne spuštění, třetí do prvního měsíce provozu. Zkopírujte si ho do nástroje na úkoly a u každého bodu uveďte, kdo za něj odpovídá.
- Před spuštěním (blokující)89
- V den spuštění7
- Prvních 30 dní a průběžně9
Celkem 105 bodů.
Řízení přístupu
- Každý endpoint ověřuje oprávnění na serveru, výchozí stav je zákaz.
- Test se dvěma účty ve dvou firmách: žádný požadavek nevrací cizí data.
- Data zákazníků jsou oddělená, ideálně přes row-level security v databázi.
- Server ukládá jen povolená pole, mass assignment nefunguje.
- Administrace vyžaduje dvoufázové ověření a je dostupná jen přes SSO, VPN nebo z povolených IP adres.
- Funkce, které stahují URL, mají allowlist domén a blokují privátní IP adresy a metadata cloudu.
- Změny stavu jdou jen přes POST, PUT, PATCH nebo DELETE a formuláře mají token proti CSRF.
Přihlašování a relace
- Minimální délka hesla 15 znaků, žádná pravidla složitosti, vkládání ze schránky povolené.
- Nová hesla se kontrolují proti seznamu uniklých hesel.
- Hesla jsou uložená přes Argon2id, bcrypt jen tam, kde Argon2id nejde.
- Uživatelé mohou zapnout passkey nebo TOTP, administrátoři je mají povinně.
- Přihlášení, registrace i obnova hesla mají limity pokusů a neprozrazují, jestli účet existuje.
- Token pro obnovu hesla je náhodný, jednorázový a platí nejvýš hodinu.
- Po změně hesla se zruší všechny relace a uživatel dostane e-mail.
- Relační cookies mají HttpOnly, Secure a SameSite, po přihlášení vzniká nové ID relace.
- Odhlášení ruší relaci na serveru.
- OAuth a OpenID Connect používají PKCE, state a přesnou shodu redirect_uri.
Vstupy a soubory
- Všechny SQL dotazy jsou parametrizované, raw dotazy prošly revizí.
- Každý endpoint validuje vstup podle schématu na serveru.
- Výstup se escapuje automaticky, každé místo s raw HTML prošlo revizí a sanitizací.
- Aplikace nerozbaluje serializované objekty z nedůvěryhodných zdrojů a XML parser má vypnuté externí entity.
- Nahrané soubory mají kontrolu typu podle obsahu, limit velikosti, úložiště mimo webový kořen a vlastní doménu, SVG je ošetřené.
Tajné klíče a konfigurace
- Scan celé historie Gitu je bez nálezu, všechny kdy uniklé klíče jsou vyměněné.
- Tajemství jsou ve správci tajemství, v kódu, Dockerfile ani konfiguraci CI nejsou.
- Ve frontendových proměnných (NEXT_PUBLIC_, VITE_) není žádný tajný klíč.
- Produkce má vlastní klíče s minimálními oprávněními.
- Debug režim je vypnutý, chybové stránky neukazují technické detaily.
- Adresy /.env, /.git/, zálohy, phpinfo a /actuator vracejí 404.
- Swagger a GraphQL introspekce jsou vypnuté nebo za přihlášením.
- Výchozí účty, hesla a ukázkové aplikace jsou odstraněné.
- CORS povoluje jen konkrétní domény.
- Source mapy nejsou veřejně dostupné.
HTTPS, doména a hlavičky
- Certifikát se obnovuje automaticky přes ACME 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ý záznam CNAME nevede na zrušenou službu.
- Účet u registrátora a DNS má dvoufázové ověření a zámek převodu.
Závislosti a CI/CD
- Lockfile je v repozitáři a CI instaluje přes npm ci nebo ekvivalent.
- Žádná známá kritická zranitelnost v závislostech bez písemně zdůvodněné výjimky.
- Nové verze balíčků se přebírají s odkladem několika dní.
- Instalační skripty závislostí jsou omezené.
- Existuje SBOM.
- Akce v GitHub Actions jsou připnuté na SHA, GITHUB_TOKEN má minimální oprávnění.
- Do cloudu se CI přihlašuje přes OIDC.
- Hlavní větev je chráněná, nasazení do produkce vyžaduje schválení.
- Účty vývojářů na GitHubu, npm a v cloudu mají dvoufázové ověření odolné proti phishingu.
- Kontejnery běží bez práv roota z minimálního obrazu.
Infrastruktura
- Produkce je v odděleném účtu nebo projektu cloudu.
- Hlavní účet cloudu má hardwarový klíč nebo passkey a běžně se nepoužívá.
- Databáze, cache a fronty nejsou dostupné z internetu.
- Z internetu jsou otevřené jen porty 80 a 443, SSH a RDP nejsou veřejné.
- Buckety mají blokovaný veřejný přístup, soubory se sdílí přes podepsané odkazy.
- 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.
- Aplikace běží za CDN s ochranou proti DDoS a server přijímá provoz jen z CDN.
Data a zálohy
- Aplikace sbírá jen data, která potřebuje, a má stanovené lhůty uchování.
- Spojení s databází a interními službami je šifrované.
- Disky a databáze jsou šifrované, citlivá pole i na úrovni aplikace.
- Platební karty zpracovává platební brána, aplikace je neukládá.
- Zálohy jsou šifrované a aspoň jedna kopie je neměnná nebo v odděleném účtu.
- Obnova ze zálohy je vyzkoušená a změřená.
Logování a chyby
- Přihlášení, změny oprávnění a akce administrátorů se logují do centrálního systému mimo server.
- V logech nejsou hesla, tokeny ani čísla karet.
- Upozornění na podezřelé vzorce chodí konkrétní osobě a jsou otestovaná.
- Běží externí monitoring dostupnosti a sledování chyb.
- Aplikace při chybě selhává bezpečně, volání externích služeb mají časové limity.
AI funkce (pokud je máte)
- Žádný agent nemá zároveň nedůvěryhodný vstup, přístup k citlivým datům a cestu ven bez schválení člověkem.
- Agent má jen oprávnění přihlášeného uživatele.
- Nevratné akce potvrzuje člověk.
- Výstup modelu se ošetřuje jako nedůvěryhodný vstup, obrázky v odpovědích jen z povolených domén.
- API klíče k modelům jsou jen na backendu, s limity na uživatele a měsíční útratu.
- Test prompt injection proběhl.
- S poskytovatelem modelu je zpracovatelská smlouva.
Obchodní logika a roboti
- Ceny, slevy a množství počítá server.
- Souběžné požadavky na peníze a kredity jsou ošetřené zámky nebo atomickými operacemi.
- Webhooky se ověřují podpisem.
- Registrace a formuláře mají ochranu proti robotům, SMS a e-maily mají limity.
- Limity počtu požadavků platí pro API, přihlášení, registraci a vyhledávání.
Vedení a zákony
- Penetrační test proběhl a kritické a vysoké nálezy jsou opravené a ověřené.
- Plán pro případ incidentu určuje, kdo rozhoduje, a obsahuje kontakty, postupy a nouzové vypínače.
- Lhůty pro hlášení (GDPR 72 hodin, zákon o kybernetické bezpečnosti 24 hodin, CRA 24 hodin) jsou v plánu i s odpovědnými osobami.
- Záznamy o zpracování a zpracovatelské smlouvy podle GDPR jsou hotové, u vysokého rizika i DPIA.
- Samoidentifikace podle zákona o kybernetické bezpečnosti proběhla.
- Je ověřené, jestli se na produkt vztahuje Cyber Resilience Act.
- Soubor /.well-known/security.txt existuje a adresa v něm funguje.
04Checklist, část 2: V den spuštění
- Poslední scan závislostí a tajemství nad verzí, která jde na produkci.
- Kontrola hlaviček přes MDN HTTP Observatory a certifikátu přes SSL Labs na produkční doméně.
- Ověření, že /.env, /.git/ a debug stránky na produkci vrací 404.
- Ověření, že logy a upozornění z produkce dorazí.
- Záloha těsně před spuštěním a vyzkoušený návrat k předchozí verzi.
- Tým ví, kdo má první dny pohotovost a jak ho sehnat.
- Testovací účty, testovací data a dočasné výjimky ve firewallu jsou smazané.
05Checklist, část 3: Prvních 30 dní a průběžně
- První týden denně projít logy a upozornění.
- Přepnout CSP z Report-Only na vynucování.
- Nastavit pravidelné aktualizace závislostí a lhůty pro opravy: kritické do 48 hodin, vysoké do 14 dnů.
- Odebírat bezpečnostní oznámení používaných frameworků a katalog aktivně zneužívaných zranitelností CISA KEV.
- Jednou za čtvrt roku vyzkoušet obnovu ze zálohy.
- Zkontrolovat, kdo má přístup k produkci a cloudu, a nepotřebné přístupy odebrat.
- Provést tabletop cvičení podle plánu pro případ incidentu.
- Naplánovat další penetrační test: jednou ročně a po každé velké změně.
- Zvážit soukromý program odměn za nalezené chyby.
06Časté otázky
Co zkontrolovat před spuštěním webové aplikace?
Čtyři věci mají přednost: oprávnění na serveru, tajné klíče mimo kód, aktuální a zamčené závislosti a logy s upozorněním. Pak následují HTTPS a hlavičky, nastavení cloudu, zálohy, penetrační test a zákonné povinnosti.
Co je OWASP Top 10?
Seznam deseti nejzávažnějších bezpečnostních rizik webových aplikací od neziskové organizace OWASP. Aktuální verze je z roku 2025 a na prvních třech místech má narušené řízení přístupu, chybnou konfiguraci a selhání dodavatelského řetězce softwaru (OWASP).
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.
Je kód napsaný umělou inteligencí bezpečný?
Ne automaticky. Podle zprávy Veracode z července 2026 obstál kód od AI v průměru jen v 56 % bezpečnostních testů a nejlepší model dosáhl 68 % (SD Times).
Kolik stojí penetrační test webové aplikace?
Podle ceníku SecurPro od zhruba 20 000 Kč za menší web. Běžná firemní aplikace nebo API vyjde obvykle na 40 000 až 90 000 Kč (SecurPro).
Do kolika hodin musím nahlásit únik dat?
Do 72 hodin od zjištění, pokud jde o osobní údaje, a to Úřadu pro ochranu osobních údajů. Regulované subjekty posílají prvotní hlášení kybernetického incidentu do 24 hodin, a to NÚKIB (režim vyšších povinností), nebo Národnímu CERT, tedy CSIRT.CZ (režim nižších povinností) (zákon č. 264/2025 Sb., § 15 a 16).
07Zdroje
Údaje platí k 27. září 2026. Další zdroje jsou uvedené v jednotlivých podrobných článcích.
- Verizon: 2026 Data Breach Investigations Report
- Verizon DBIR 2026, shrnutí watchTowr
- UCSB: Certificate Transparency jako zdroj cílů (IEEE EuroS&P 2023)
- IBM: Cost of a Data Breach Report 2026
- OWASP Top 10:2025 (česky)
- OWASP Top 10 for Agentic Applications 2026
- Veracode: 2026 GenAI Code Security Report
- SD Times: Veracode o bezpečnosti kódu od AI
- GitGuardian: State of Secrets Sprawl 2026
- The Hacker News: 9 poznatků ze State of Secrets Sprawl 2026
- CISA: Widespread Supply Chain Compromise Impacting npm Ecosystem
- GitHub Changelog: npm classic tokens revoked
- AWS: rychlé zneužití chyby React2Shell (CVE-2025-55182)
- CyberInsider: TLS certificate lifespans reduced to 47 days by 2029
- Evropská komise: Cyber Resilience Act, povinnosti hlášení
- Lupa.cz: Zákon o kyberbezpečnosti začal platit
- SecurPro: Cena penetračního testu