Přeskočit na obsah
Bezpečnost

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í.

Obálka článku 105 věcí před spuštěním webové aplikace: 31 % úniků začíná zneužitím chyby, medián opravy 43 dní, průměrná cena úniku dat 4,99 mil. USD

Č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).

Jak se útočníci dostávají dovnitř
  • 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čí

TrendCo se staloCo to znamená pro vás
Kód píše AIAI 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ávislostiAxios v březnu, TanStack v květnu 2026, předtím červ Shai-Hulud s více než 500 napadenými balíčkyZamč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ě hodinyPublikování z CI přes OIDC (trusted publishing)
AI agenti v aplikacíchOWASP vydal v prosinci 2025 první Top 10 rizik pro agentní aplikaceAgent smí jen to, co přihlášený uživatel
Kratší certifikátyOd 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ámUniklý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ásitOd 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 hodinPlá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.

Termíny 2025 až 2029: nový zákon o kybernetické bezpečnosti, konec klasických tokenů npm, hlášení podle Cyber Resilience Act a zkracování platnosti certifikátů na 200, 100 a 47 dní
Co se mění v letech 2025 až 2029.

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

Čtyři oblasti bezpečnosti webové aplikace: kód aplikace, tajné klíče a závislosti, server, HTTPS a cloud, vedení, zákony a dodavatelé
Každé oblasti se podrobně věnuje samostatný článek.

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á.

Body checklistu podle fáze
  • 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.

Tým LISTIFYWeby, aplikace a marketing z Prahy od roku 2008

Další články

Všechny články →
Bezpečnost27. 9. 2026 · 15 min čtení

Stačí změnit číslo v adrese: chyby v kódu, přes které unikají data

Bezpečnost27. 9. 2026 · 11 min čtení

Stačil jeden npm install: jak se v roce 2026 kradou API klíče a jak se bránit

Bezpečnost27. 9. 2026 · 11 min čtení

Váš staging už znají. Jak zabezpečit server, HTTPS a cloud před spuštěním webu

Sdílet stránku

E-mailem

Máte nápad? Za 15 minut víte, jak na něj.

Krátký hovor, žádná prezentace. Řekneme vám, co dává smysl, kolik to bude stát a jak rychle to zvládneme.

+420 771 166 199Po až Pá 8:30 až 16:00 · info@listify.cool

Kdy vám máme zavolat?

Vyberte den a časové rozmezí. Zavoláme my, hovor trvá zhruba 15 minut.

Den