Přeskočit na obsah
Od 8. 6. 2026 počítáme Vibe Score nově — vážený průměr tří kategorií (bezpečnost 50 %, právní 30 %, SEO 20 %) plus mírnější penalty. Skóre tak může být vyšší než dřív, seznam nálezů ale zůstává stejný.

Jak Vibescan funguje

Spousta lidí dnes staví aplikace přes "vibe coding" — píšeš AI co chceš a ono to napíše za tebe. Je to skvělý způsob, jak rychle prototypovat. Problém je, že AI často zapomíná na bezpečnost. A ty nevíš, co ti chybí, protože jsi to nikdy nemusel řešit.

Vibescan ti dá rychlý přehled o tom, co je viditelné zvenčí — bez nutnosti přístupu ke kódu.

Co Vibescan dělá
  • Pasivní audit veřejně dostupných informací
  • Kontrola HTTP hlaviček, SSL, DNS a HTML
  • Hluboký sken výkonu a přístupnosti (Lighthouse)
  • Konkrétní skóre a návody na opravu
  • Sdílitelný odkaz na výsledky
Co Vibescan nedělá
  • Nejedná se o penetrační test
  • Nekontrolujeme zdrojový kód aplikace
  • Netestujeme SQL injection, XSS ani IDOR
  • Nezaručujeme 100% bezpečnost

Hluboký sken přes Lighthouse

Vedle rychlého pasivního auditu spouští Vibescan i hluboký sken postavený na nástroji Lighthouse od Googlu. Lighthouse otevírá tvůj web v reálném Chromiu a měří věci, které pasivní skener nezvládne.

Co přidává
  • · Výkon — LCP, CLS, TBT, Speed Index
  • · Přístupnost — kontrasty, ARIA, hierarchie nadpisů
  • · Best practices — zranitelné JS knihovny, CSP, mixed content
  • · Hlubší SEO — canonical, hreflang, robots.txt
Jak to funguje
  • · Běží paralelně s rychlým skenem (~30 s navíc)
  • · Výsledky se po dokončení samy doplní bez refreshe
  • · Vibe skóre se přepočítá podle nových nálezů
  • · Obecné nálezy nahradí přesnější Lighthouse zjištění

Lighthouse běží lokálně na našem serveru (Apache 2.0 licence) — URL tvého webu neodchází k Googlu. Pokud při skenu Lighthouse selže nebo vyprší limit, hlavní výsledky tím neztratíš a můžeš ho zkusit znovu.

V čem se lišíme od ostatních skenerů

Většinu věcí, které Vibescan kontroluje, umí i jiné veřejně dostupné nástroje. Každý se ale obvykle zaměřuje na jednu konkrétní oblast a výsledky jsou v angličtině, technickým jazykem, bez konkrétního návrhu řešení.

Specializované nástroje, které děláme podobně
Vše na jednom místě

Místo abys obíhal sedm různých webů, projel jich kvůli tobě dvanáct najednou. Jeden URL, jedno skóre, jeden sdílitelný odkaz pro klienta nebo tým.

Řešení k zkopírování

U každého nálezu máš česky vysvětlené, proč je to problém, a konkrétní příklad konfigurace (Nginx, Apache, Django…), který stačí zkopírovat do projektu.

Některé nálezy nemusí odpovídat realitě — a to je v pořádku

Vibescan je externí skener bez přístupu ke kódu. Jeho úkolem je upozornit na potenciální rizika, ne tvrdit, že každý nález je reálný problém. Když používáme heuristiku na detekci například technologie podle hlaviček, můžeme se splést.

Proto si stáhni TXT export pro AI a vlož ho do nástroje, se kterým aplikaci vyvíjíš (Claude Code, Cursor, Copilot). AI zná tvůj kód a sama ti řekne: „Tenhle nález ignoruj, používáme jinou knihovnu" nebo „Tohle opravdu chybí, opravím to." Zafiltruje šum a soustředí se na to, co je v tvém kontextu skutečně relevantní.

Co konkrétně kontrolujeme

HTTP Security Headers
Proč to řešit →
Kontrolujeme přítomnost a správné nastavení bezpečnostních hlaviček: HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy a Permissions-Policy. Chybějící hlavičky jsou nejčastější problém vibecoded projektů — AI je málokdy přidá automaticky.
SSL & HTTPS
Proč to řešit →
Ověříme, že web běží na HTTPS a správně přesměrovává HTTP požadavky. Bez HTTPS je veškerá komunikace nešifrovaná a zranitelná vůči odposlouchávání.
DNS záznamy (SPF, DMARC, DKIM)
Proč to řešit →
Kontrolujeme emailové DNS záznamy, které chrání tvou doménu před spoofingem a phishingem. Ověříme SPF, DMARC (včetně síly politiky p=none vs p=reject) a DKIM přes běžné selektory.
HTML analýza
Proč to řešit →
Parsujeme HTML stránky a hledáme typické chyby: odkazy s target="_blank" bez rel="noopener" (reverse tabnabbing útok), HTML komentáře obsahující TODO, hesla, API klíče nebo debug poznámky.
Tech leakage
Proč to řešit →
Detekujeme prozrazení technologického stacku přes HTTP hlavičky — X-Powered-By, Server verze a podobně. Útočníci tyto informace využívají k cílení známých zranitelností.
Citlivé soubory (plánováno)
Proč to řešit →
Plánujeme kontrolovat veřejnou dostupnost souborů, které by neměly být přístupné zvenčí. Aktivní probing zapneme až pro ověřené domény — bez ověření vlastnictví je probing v právní šedé zóně a my ji nechceme přecházet bez tvého souhlasu.
  • · .env — proměnné prostředí (hesla, API klíče, DB credentials)
  • · .env.backup — záloha .env se stejnými secrets
  • · .git/config — konfigurace git repozitáře (umožňuje stáhnout zdrojový kód)
  • · .DS_Store — macOS metadata prozrazující strukturu adresářů
  • · phpinfo.php — verze PHP, cesty, rozšíření, konfigurace serveru
  • · server-status — Apache status page s aktivními requesty a IP klientů
  • · wp-config.php.bak — záloha WordPress konfigurace s DB přístupy
  • · .svn/entries — SVN metadata umožňující stáhnout zdrojový kód

Tyto soubory chystáme kontrolovat pro ověřené weby — podívejte se na roadmapu.

security.txt
Proč to řešit →
Kontrolujeme přítomnost souboru security.txt (RFC 9116) na /.well-known/security.txt. Tento soubor říká bezpečnostním výzkumníkům, kam hlásit nalezené zranitelnosti.
Základní přístupnost
Proč to řešit →
Kontrolujeme vybrané signály přístupnosti webu: přítomnost odkazu pro přeskočení navigace (skip link) pro uživatele klávesnice a hlasových čteček, a respektování systémového nastavení prefers-reduced-motion pro uživatele s vestibulárními potížemi nebo epilepsií. Pokud tyto prvky nenajdeme, upozorníme — ale doporučujeme ověřit i další stránky webu.
Právní náležitosti
Proč to řešit →
Hledáme základní právní prvky vyžadované českým a evropským právem: mechanismus pro souhlas s cookies (cookie consent lišta) a odkaz na stránku ochrany osobních údajů (GDPR). Pro weby pod zákonem č. 424/2023 Sb. (EAA — e-shopy, banky, doprava od 28.6.2025) nebo zák. č. 99/2019 Sb. (orgány veřejné moci) eskalujeme chybějící prohlášení o přístupnosti na varování. Copyright označení nekontrolujeme — autorské právo vzniká automaticky a © notice nemá legální efekt.
Kontrola závislostí (CVE)
Proč to řešit →
Vložte obsah souboru se závislostmi a zkontrolujeme každý balíček proti databázi známých zranitelností. Automaticky rozpoznáme formát souboru (requirements.txt, package.json, composer.json), extrahujeme názvy a verze balíčků a dotážeme se OSV.dev API. Pro každou nalezenou zranitelnost zobrazíme identifikátor, závažnost podle CVSS skóre, popis a opravenou verzi — pokud existuje.
  • · Databáze: OSV.dev (osv.dev) — open-source agregátor zranitelností provozovaný Googlem
  • · Zdroje dat: NVD (NIST), GitHub Security Advisories, PyPI Advisory, npm Advisory, RustSec, Go Vulnerability Database a další
  • · Ekosystémy: PyPI (Python), npm (Node.js), Packagist (PHP) — další plánujeme
  • · API: OSV.dev querybatch endpoint — jeden hromadný dotaz na všechny závislosti najednou
  • · Závažnost: CVSS v3 skóre — Critical (≥9.0), High (≥7.0), Medium (≥4.0), Low (<4.0)
  • · Aktuálnost: OSV.dev se aktualizuje průběžně, ale u některých CVE může být zpoždění — datum poslední aktualizace zobrazujeme u výsledků
  • · Omezení: kontrolujeme pouze přímé závislosti s uvedenou verzí — tranzitivní závislosti (sub-dependencies) nezachytíme

Našli jsme zranitelné balíčky? Podívejte se do průvodce opravami pro konkrétní kroky jak je aktualizovat.

Co bys měl zkontrolovat sám

Vibescan kontroluje jen to, co je viditelné zvenčí. Následující věci musíš ověřit ve svém kódu. Pokud stavíš s AI (Claude Code, Cursor, Copilot), řekni mu ať to zkontroluje — ale pak to ověř sám.

Validace vstupů

Validace a sanitizace všech uživatelských vstupů na backendu — nikdy nedůvěřuj datům z frontendu
Validace na frontendu slouží pouze pro UX, ne jako bezpečnostní opatření
Kontrola typů, délky, formátu a povolených hodnot u každého vstupu
Ochrana proti SQL Injection — používej ORM nebo parametrizované dotazy, nikdy string concatenation

Autentizace a autorizace

IDOR (Insecure Direct Object Reference) — nikdy nebrat ID uživatele z URL parametrů, vždy ze session
Hashování hesel (bcrypt, argon2) — nikdy neukládat plaintext
Session cookies: HttpOnly, Secure, SameSite=Strict
Rate limiting na login a registraci — ochrana proti brute force útokům
Middleware pro ověření autentizace na chráněných routách

API bezpečnost

Rate limiting na všech API endpointech — ochrana proti DDoS a zneužití
Security a authorization headers na každém requestu
CORS správně nastavený — žádné wildcard (*) v produkci
IP block list pro veřejné API endpointy
Rozlišení CRUD routes vs. server actions — ne všechno patří do API
Limity na velikost souborů při uploadu

Secrets a konfigurace

API klíče nikdy v klientském kódu (hardcoded) — vždy server-side
Secrets v .env souboru, .env v .gitignore
.env.example s placeholder hodnotami pro tým
DEBUG=False v produkci, vlastní error stránky (404, 500) bez stack trace
Všechny debug logy odstraněné před deployem

HTTP a transport

Security headers: HSTS, CSP, X-Frame-Options, X-Content-Type-Options
Security middleware (Django SecurityMiddleware, Helmet pro Node.js)
HTTPS vynucené, HTTP přesměrováno
Secure cookies v produkci

Automatizované kontroly

Připoj Snyk nebo Semgrep na GitHub repozitář — automatické skeny při každém PR
Projdi OWASP Top 10 a ověř ochranu proti každé zranitelnosti
Minimálně dvě větve (development + main) — nikdy nepushuj rovnou na main
Před každým commitem spusť build a zkontroluj chyby
Tip pro vibecoded projekty

Po každé větší implementaci commitni a pushni kód, aby proběhly automatizované kontroly (Snyk, Semgrep). Pak teprve pokračuj na další část. Měj minimálně dvě větve — development a main. Před commitem vždy spusť build a ověř, že vše funguje.