---
title: "Penetration testování webu s Claude Code"
description: "Jak provést penetration testování webu pomocí Claude Code a tří podagentů před spuštěním: útoky, důkazy, náklady, izolace a limity oproti pentestu."
author: "Jan Černošek"
author_role: "Spoluzakladatel · Business & Consulting"
author_url: https://nobig.deals/cs/blog/autor/jan-cernosek
url: https://nobig.deals/cs/blog/penetration-testovani-webu-claude-code
content_type: text/markdown
---

Autor: Jan Černošek (Spoluzakladatel · Business & Consulting)

[Blog](https://nobig.deals/cs/blog)/[AI a vývoj](https://nobig.deals/cs/blog/kategorie/ai-a-vyvoj)/Penetration testování webu pomocí Claude…

# Penetration testování webu pomocí Claude Code před spuštěním

Penetration testování webu lze před spuštěním částečně zrychlit pomocí Claude Code: tři podagenti s účty A, B a admin spustí skutečné útoky a doloží je logy. Je to rychlá pomocná kontrola, ne náhrada autorizovaného pentestu.

[Jan Černošek](https://nobig.deals/cs/blog/autor/jan-cernosek)·Publikováno 25\. října 2026·9 min čtení

![Diptych: tři vývojáři zezadu u svých stanic s terminály a detail ruky u monitoru s logy](https://nobig.deals/_next/image?url=https%3A%2F%2Fassets.nobig.deals%2Fblog%2Fcmvo4agh6000x0xpi7njkek7i%2Fpenetration-testovani-webu-claude-code-hero-55a7637bab.webp&w=3840&q=75)

Tři testovací účty, tři sady útoků a každý doložený logem požadavku a odpovědi. Ilustrační snímek vytvořený pomocí AI.

Obsah článku · 7
1. [Jak funguje penetration testování webu se třemi podagenty a účty A, B a admin?](#jak-funguje-penetration-testovani-webu-se-tremi-podagenty-a)
2. [Proč právě tři účty](#proc-prave-tri-ucty)
3. [Úroveň úsilí podle skupiny](#uroven-usili-podle-skupiny)
4. [Jaké skupiny útoků je potřeba pokrýt?](#jake-skupiny-utoku-je-potreba-pokryt)
5. [Impersonace a práva](#impersonace-a-prava)
6. [Limity v rozhraní a validace](#limity-v-rozhrani-a-validace)
7. [Útoky zvenčí](#utoky-zvenci)
8. [Proč musí být každý útok reálně spuštěn a doložen?](#proc-musi-byt-kazdy-utok-realne-spusten-a-dolozen)
9. [Jak izolovat testovací prostředí, aby agenti nezasáhli produkci?](#jak-izolovat-testovaci-prostredi-aby-agenti-nezasahli)
10. [Kolik takový test stojí v tokenech?](#kolik-takovy-test-stoji-v-tokenech)
11. [Plugin security-guidance a limity AI testování](#plugin-security-guidance-a-limity-ai-testovani)
12. [Co plugin skutečně kontroluje](#co-plugin-skutecne-kontroluje)
13. [Kde AI selhává oproti etickému hackerovi](#kde-ai-selhava-oproti-etickemu-hackerovi)
14. [Časté otázky](#caste-otazky)

Postup: v izolovaném prostředí pověříte Claude Code s modelem Opus 5.5 rolí útočníka, rozdělíte útoky do tří skupin a každý necháte reálně spustit a zalogovat. Nálezy pak opravíte a ověříte regresními testy. Penetration testování webu tak lze před spuštěním částečně zrychlit, lidská kontrola ale zůstává nutná po celou dobu.

Ve zkratce

* Test běží se třemi podagenty a třemi účty (uživatel A, uživatel B, admin); každý útok se reálně spouští a dokládá požadavkem i odpovědí.
* Útoky se dělí do tří skupin: impersonace a práva, obcházení limitů a validace, útoky zvenčí včetně XSS, SSRF a prompt injection.
* Číslo „14 zranitelností“ není oficiální standard, proto si 14 kategorií definujeme sami, včetně postupu, očekávaného výsledku a lidské validace.
* Modelový odhad nákladů s Opus 5.5 vychází zhruba od 11 do 160 USD na jednu dávku; jde o odhad, ne garantovanou cenu.
* Agenti musí běžet v izolovaném prostředí s ochranou vynucenou mimo prompt; plugin security-guidance není DAST ani náhrada pentestu.

## Jak funguje penetration testování webu se třemi podagenty a účty A, B a admin?

Pentest pomocí AI stojí na simulovaném etickém hackerovi: model Opus 5.5 dostane roli útočníka a projíždí web proti předem danému seznamu útoků. Je to praktický bezpečnostní audit webu, který lze pustit ještě před ostrým provozem. Práci rozdělíte na tři **podagenty** (_subagents_), jeden na každou skupinu útoků. Každý podagent dostane vlastní sadu tří testovacích účtů: běžného uživatele A, běžného uživatele B a administrátora. Podagenti jen útočí a zaznamenávají – neopravují.

Tento princip je blízký tomu, co řešíme při [nasazení AI agentů](https://nobig.deals/cs/sluzby/ai-agenti): oddělené role, jasný rozsah a žádné tiché zásahy do produkčního kódu.

```mermaid
flowchart TD
    A["Člověk: rozsah a pravidla"] --> B["Opus 5.5: etický hacker"]
    B --> C["Podagent 1: impersonace"]
    B --> D["Podagent 2: limity a validace"]
    B --> E["Podagent 3: útoky zvenčí"]
    C --> F["Report s logy"]
    D --> F
    E --> F
    F --> G["Člověk: validace a oprava"]
```

Definice

Podagent (_subagent_) je samostatná instance modelu s vlastním kontextem, účty a zadáním. Běží vedle hlavního agenta a řeší jednu úzce vymezenou část úlohy.

### Proč právě tři účty

Tři účty pokrývají tři různé úhly pohledu. Účet A a účet B odhalí, jestli jeden uživatel vidí nebo mění data druhého – to je jádro **IDOR** (_Insecure Direct Object Reference_). Administrátorský účet ověří, zda běžný uživatel nedosáhne na privilegované funkce. Hesla testovacích účtů patří do souboru `.env` mimo Git a tokeny se v reportu maskují.

### Úroveň úsilí podle skupiny

Výchozí úroveň úsilí _medium_ na většinu skupin stačí; Anthropic ji v [přehledu modelů](https://docs.anthropic.com/en/docs/about-claude/models/overview) uvádí jako výchozí, pokud nenastavíte jinak. Skupinu impersonace doporučujeme zvednout na _high_ – chyba v oprávněních je nejdražší omyl, protože vede přímo k úniku cizích dat.

## Jaké skupiny útoků je potřeba pokrýt?

Útoky rozdělíte do tří skupin podle toho, odkud útočník přichází a co se snaží obejít. Každá skupina má vlastního podagenta a vlastní sadu účtů, takže se nálezy nemíchají dohromady.

### Impersonace a práva

Podagent se bez přihlášení pokusí vzít veřejný klíč z frontendu a dotázat se přímo na tabulky databáze. Přihlášený jako A zamění `id` v požadavku za B a zkusí číst, upravit i smazat cizí data. Do požadavku na úpravu profilu přidá `role: admin`. Resetovací odkaz na heslo použije dvakrát za sebou.

### Limity v rozhraní a validace

U zakázaných tlačítek a skrytých voleb podagent přeskočí stránku a pošle požadavek přímo na API. Po vyčerpání bezplatného využití ověří, zda přímé volání stále projde. Při malém kreditu vystřelí 20 souběžných požadavků. Formuláře plní extrémními vstupy a mění přesměrování `?next=` na cizí web, včetně hodnot začínajících `//` a `@`.

### Útoky zvenčí

Sem patří **XSS** payload v uživatelském jménu, komentáři nebo Markdownu, **SSRF** přes zadané URL a prompt injection v nahraném dokumentu. SSRF a funkce s načítáním URL se testují jen tehdy, pokud je aplikace opravdu má.

| Skupina             | Typické útoky                                                             | Co se ověřuje                                   |
| ------------------- | ------------------------------------------------------------------------- | ----------------------------------------------- |
| Impersonace a práva | přímý dotaz na DB, záměna id (IDOR), role: admin, opakovaný reset hesla   | izolace dat mezi účty a oprávnění               |
| Limity a validace   | přímé volání API, 20 souběžných požadavků, extrémní vstupy, open redirect | vynucení limitů mimo UI a validace vstupů       |
| Útoky zvenčí        | XSS, SSRF na http://localhost a http://169.254.169.254, prompt injection  | ochrana proti vnějšímu a nedůvěryhodnému obsahu |

Kategorie jako IDOR a cross-file SSRF [plugin security-guidance uvádí](https://github.com/anthropics/claude-code/blob/main/plugins/security-guidance/README.md) mezi svými sledovanými vzory.

Tip

Prompt injection testujte na reálné funkci: do nahrávaného dokumentu skryjte instrukci, ať AI načte data jiného uživatele nebo zavolá nástroj, který nemá. Pokud to AI udělá, máte doloženou zranitelnost, ne jen teorii.

## Proč musí být každý útok reálně spuštěn a doložen?

Útok, který se jen přečetl v kódu a nikdy nespustil, se počítá jako **neprokázaný**. Pouhý úsudek nad zdrojákem přehlédne chování runtime, konfiguraci a datové toky. Důkazem je log požadavku a odpovědi, ne věta „podle kódu by to mělo být v pořádku“.

Postup

1. **Spusťte útok naživo.** Každou položku skutečně odešlete proti testovacímu prostředí.
2. **Zdokumentujte požadavek a odpověď.** Do tabulky zapište, jak útok proběhl a zda byl odmítnut tam, kde měl.
3. **Opravte nález.** Opravu provádí člověk nebo oddělený agent, ne útočící podagent.
4. **Ověřte vypnutím ochrany.** V lokálním kódu ochranu dočasně vypněte – útok musí projít; po zapnutí musí být odmítnut.
5. **Uložte test jako skript.** Testy patří do repozitáře a spouští se před každým dalším spuštěním.

Takto vypadá jeden uložený regresní test pro IDOR, který se dá pustit opakovaně:

```bash
# Test IDOR: účet A se pokouší číst objednávky účtu B
# Očekávaný výsledek po opravě: HTTP 403
TOKEN_A="$TEST_TOKEN_A"   # z .env, mimo Git
curl -s -o /dev/null -w "%{http_code}\n" \
  -H "Authorization: Bearer $TOKEN_A" \
  "https://staging-security.example/api/users/B/orders"
```

Pozor

Oprava od agenta může být nebezpečnější než samotná zranitelnost. Agent občas jen skryje symptom, rozbije autorizaci nebo odstraní validaci potřebnou pro legitimní funkci. Každou opravu proto kontroluje jiný agent i člověk a potvrdí ji regresní test.

## Jak izolovat testovací prostředí, aby agenti nezasáhli produkci?

Ochrana nesmí stát na jediné větě v promptu. Oficiální [dokumentace Claude Code k bezpečnosti](https://docs.anthropic.com/en/docs/claude-code/security) doporučuje kombinovat permissions a sandboxing tak, aby dopad byl omezený i tehdy, když prompt injection obejde rozhodování agenta.

Než spustíte podagenty

* oddělený účet a databáze se syntetickými nebo anonymizovanými daty
* žádný produkční connection string, IAM role ani cloud credentials
* deny-all egress, povolen jen testovaný web, testovací DB, mocky a build registry
* jednorázová VM nebo rootless kontejner, připojena jen kopie repozitáře
* bez mountu `~/.ssh`, cloud credentials a Docker socketu
* `bypassPermissions` zapnutý jen v izolaci
* cílové hostname a IP ověřené před během, credentials po běhu zneplatněné

Režim `bypassPermissions`, respektive `--dangerously-skip-permissions`, [dokumentace k oprávněním](https://docs.anthropic.com/en/docs/claude-code/permissions) označuje za vhodný jen pro prostředí, kde agent nemůže nic poškodit. Vývojový kontejner sám o sobě nestačí – [Anthropic upozorňuje](https://docs.anthropic.com/en/docs/claude-code/devcontainer), že nezabrání exfiltraci všeho, co je do něj zpřístupněno, včetně přihlašovacích údajů v `~/.claude`.

Náš vlastní provoz běží na Railway s Next.js a PostgreSQL a testovací prostředí od produkce oddělujeme. Pro české startupy s AI generovaným kódem z toho plyne jednoduché pravidlo: produkční a testovací databáze i DNS zóny držte v odlišných účtech.

Pozor

Promptové pravidlo „nikdy se nepřipojuj k produkci“ není ochrana. Vynuťte ji mimo model – sítí, IAM, sandboxem a oddělenými credentials. Pokud je preview prostředí napojené na produkční databázi, spouštějte všechno výhradně lokálně.

## Kolik takový test stojí v tokenech?

Krátká odpověď: u běžné webové aplikace řádově desítky USD za jednu dávku, u rozsáhlého repozitáře s opakovanými opravami až stovky. Přesné číslo bez změření skutečné spotřeby nikdo poctivě neuvede.

Podle [ceníku Anthropic](https://docs.anthropic.com/en/docs/about-claude/pricing) stojí Opus 5.5 **4 USD za milion vstupních** a **20 USD za milion výstupních tokenů**. Jeden agent se 300 000 vstupními a 50 000 výstupními tokeny tak vychází zhruba na 2,20 USD podle [stejného ceníku](https://docs.anthropic.com/en/docs/about-claude/pricing).

| Scénář                        | Vstupní tokeny | Výstupní tokeny | Hrubý náklad |
| ----------------------------- | -------------- | --------------- | ------------ |
| 5 agentů, kratší kontrola     | 1,5 mil.       | 0,25 mil.       | 11 USD       |
| 10 agentů, důkladnější sweep  | 3 mil.         | 0,5 mil.        | 22 USD       |
| 14 agentů, vícekolové opravy  | 8 mil.         | 1,5 mil.        | 52 USD       |
| 14 agentů, rozsáhlý repozitář | 20 mil.        | 4 mil.          | 160 USD      |

Částky jsou přepočtené z jednotkových cen v [ceníku Anthropic](https://docs.anthropic.com/en/docs/about-claude/pricing); jde o modelové kalkulace, ne garantované ceny.

GrafModelový náklad testu podle počtu podagentů (Opus 5.5)

| 5 agentů, kratší kontrola     | 11 USD  |
| ----------------------------- | ------- |
| 10 agentů, důkladnější sweep  | 22 USD  |
| 14 agentů, vícekolové opravy  | 52 USD  |
| 14 agentů, rozsáhlý repozitář | 160 USD |

Zdroj: [Anthropic – Pricing](https://docs.anthropic.com/en/docs/about-claude/pricing)

Do rozpočtu patří i to, co se v tabulce neobjeví: opakované načítání stejných souborů, dlouhé reporty a patche, regresní testy, infrastruktura sandboxu a hlavně lidská kontrola nálezů. Cena „high-effort podagenta“ jako oficiální položka neexistuje.

## Plugin security-guidance a limity AI testování

Plugin nainstalujete příkazem `/plugin install security-guidance@claude-plugins-official`. Po každém tahu úprav a po commitu pak Opus změny znovu zkontroluje, což spotřebovává další využití. Právě takhle zapojujeme bezpečnostní vrstvy do [AI ve vývojovém procesu](https://nobig.deals/cs/sluzby/ai-transformace).

### Co plugin skutečně kontroluje

Podle [README pluginu](https://github.com/anthropics/claude-code/blob/main/plugins/security-guidance/README.md) pracuje ve třech vrstvách: varování podle vzorů při operacích `Edit` a `Write`, LLM kontrola diffu po dokončení tahu a agentní kontrola commitu, která čte související soubory a sleduje datové toky napříč projektem. README uvádí zhruba **25 známých nebezpečných vzorů** – mezi příklady patří `yaml.load`, `innerHTML`, hardcodované secrets, IDOR i cross-file SSRF.

Veřejná issues z 13\. a 18\. srpna 2026 ale ukázala limity: chybu ve zpracování glob vzorů, kdy `**` vynechá soubory v kořenovém adresáři, a tiché zahození všech uživatelských vzorů při syntakticky validní, ale chybně strukturované konfiguraci. Plugin proto berte jako pomocnou vrstvu, ne jako důkaz bezpečnosti.

### Kde AI selhává oproti etickému hackerovi

Etický hacker AI je užitečný pomocník, ale agent analyzuje jen to, k čemu má přístup. Neznámá API, dynamické routy a chyby v infrastruktuře mu uniknou. Slabší je v obchodní logice – IDOR, zneužití workflow a závody často vyžadují kreativní hypotézu a zkušenost. K tomu přistupuje riziko nebezpečné opravy a prompt injection z nedůvěryhodného obsahu.

Výhody a nevýhody

Kdy se vyplatí

* rychlá předprodukční kontrola AI generovaného kódu
* paralelní pokrytí mnoha známých vzorů
* doložené útoky s logy jako podklad pro opravu

Kdy ne

* jako náhrada autorizovaného pentestu nebo DAST scanneru
* u aplikace se složitou obchodní logikou bez lidské validace
* když chybí izolace a ochrana stojí jen na promptu

Pozor

Premisa „14 zranitelností“ není oficiální standard ani pokrytí OWASP Top 10\. Definujte si vlastních 14 kategorií – každá s postupem, očekávaným výsledkem a lidskou validací. Náš úsudek: Claude Code podagenti jsou vhodní pro AI-assisted testing s lidskou kontrolou, ne pro autonomní pentest.

## Časté otázky

### Nahradí pentest pomocí AI klasický pentest?

Ne. AI penetration testing je rychlá pomocná kontrola, ne náhrada autorizovaného pentestu. Agent pokryje známé vzory a mnoho útoků paralelně, ale uniká mu obchodní logika, neznámá API a kombinace slabých signálů do skutečného útoku. Zkušený etický hacker mění strategii podle chování aplikace a posoudí reálný dopad. Nejbezpečnější je kombinace: agenti analyzují, člověk stanoví rozsah, validuje nálezy a schvaluje opravy.

### Které 14 kategorií zranitelností si definovat pro vlastní test?

Postavte seznam na ověřitelných kategoriích: autentizace, autorizace, IDOR, SSRF, XSS, SQL injection, command injection, insecure deserialization, path traversal, správa secrets, CSRF, bezpečnostní hlavičky, zranitelnosti závislostí a misconfiguration. Každá kategorie potřebuje konkrétní postup, očekávaný výsledek a lidskou validaci. Oficiální závazný seznam o 14 položkách neexistuje, proto si ho sestavte sami a u každé položky dokládejte log.

### Dá se test spustit proti produkčnímu webu?

Nedoporučujeme to. Agenti mažou a upravují data, střílejí souběžné požadavky a zkoušejí open redirect – na produkci to znamená riziko pro reálné uživatele. Test pusťte proti oddělenému prostředí se syntetickými daty a deny-all egress. Před každým během ověřte cílové hostname a IP, po skončení smažte testovací účty a zneplatněte credentials.

### Musím používat nejdražší model a high effort pro všechny podagenty?

Ne. U Opus 5.5 je výchozí úroveň úsilí medium a na většinu skupin stačí. Na _high_ zvedněte jen skupinu impersonace, protože chyba v oprávněních je nejdražší omyl. Vyšší úsilí zdražuje tím, že model dělá delší analýzu a víc iterací, proto spotřebu tokenů raději měřte. Test zranitelností před spuštěním tak zůstane cenově předvídatelný.

Zdroje a odkazy (6)

Externí stránky, na které článek odkazuje.

1. [docs.anthropic.com](https://docs.anthropic.com/en/docs/about-claude/models/overview) /en/docs/about-claude/models/overview
2. [github.com](https://github.com/anthropics/claude-code/blob/main/plugins/security-guidance/README.md) /anthropics/claude-code/blob/main/plugins/security-guidan…
3. [docs.anthropic.com](https://docs.anthropic.com/en/docs/claude-code/security) /en/docs/claude-code/security
4. [docs.anthropic.com](https://docs.anthropic.com/en/docs/claude-code/permissions) /en/docs/claude-code/permissions
5. [docs.anthropic.com](https://docs.anthropic.com/en/docs/claude-code/devcontainer) /en/docs/claude-code/devcontainer
6. [docs.anthropic.com](https://docs.anthropic.com/en/docs/about-claude/pricing) /en/docs/about-claude/pricing

## Číst více

[![Jak vytvořit animovanou B-roll grafiku pomocí Claude Opus 5.5 animace](https://nobig.deals/_next/image?url=https%3A%2F%2Fassets.nobig.deals%2Fblog%2Fcmuiwvz1k00000xqzt0xwzjb9%2Fclaude-opus-5-5-animace-b-roll-hero-79b240e95e.webp&w=3840&q=75)AI a vývojJak vytvořit animovanou B-roll grafiku pomocí Claude Opus 5.5 animaceSkill pro Claude Code umí z přepisu videa vygenerovat animovanou B-roll grafiku, kterou dřív dělaly After Effects nebo Canva. Vysvětlujeme, co je ověřené, co jen tvrzení autora a jak na to v češtině.](https://nobig.deals/cs/blog/claude-opus-5-5-animace-b-roll)[![Marketing Skills: AI agenti pro marketing v Claude Code](https://nobig.deals/_next/image?url=https%3A%2F%2Fassets.nobig.deals%2Fblog%2Fcmvo14feh00030xpivl776cu3%2Fmarketing-skills-claude-code-knihovna-hero-a603c3fa9d.webp&w=3840&q=75)AI a vývojMarketing Skills: AI agenti pro marketing v Claude CodeMarketing Skills je bezplatná open-source sada instrukcí pro AI agenty od Coreyho Hainese. Funguje v Claude Code, Codexu nebo Cursoru. Není to marketingový software a efekt na konverze nikdo nezávisle nedoložil.](https://nobig.deals/cs/blog/marketing-skills-claude-code-knihovna)[![AI agenti pro backtesting: jak postavit tým v Claude Code](https://nobig.deals/_next/image?url=https%3A%2F%2Fassets.nobig.deals%2Fblog%2Fcmvo13x3a00020xpi9x77fz1b%2Fai-agenti-backtesting-claude-code-hero-44b4dc35b1.webp&w=3840&q=75)AI a vývojAI agenti pro backtesting: jak postavit tým v Claude CodeSpolehlivý backtest nezvládne jedno chatovací okno, ale tým specializovaných subagentů napojený přes MCP na reálná data a výpočetní cloud. Ukážeme, jak ho v Claude Code sestavit a co si u výsledků hlídat.](https://nobig.deals/cs/blog/ai-agenti-backtesting-claude-code)