Blog Bezpečnost aplikací

API bezpečnost: Nejčastější zranitelnosti a jak je opravit

API jsou dnes páteří moderních aplikací a zároveň jedním z nejčastějších vstupních bodů pro útočníky. Projdeme nejkritičtější zranitelnosti z OWASP API Security Top 10 a ukážeme konkrétní opatření, která vaše API skutečně ochrání.

8. prosince 2025 · 11 minut čtení · Bezpečnost aplikací

Počet API rozhraní ve firmách každoročně roste dvojciferným tempem. Mobilní aplikace, partnerské integrace, mikroslužby — všude API. A právě proto jsou API atraktivním cílem: útočník nepotřebuje překonávat firewall, stačí mu najít špatně zabezpečený endpoint. Podle dat z roku 2024 bylo více než 40 % bezpečnostních incidentů ve firmách spojeno právě se zranitelnostmi v API.

OWASP (Open Web Application Security Project) publikuje od roku 2019 speciální seznam API Security Top 10, který se liší od klasického OWASP Top 10 pro webové aplikace. V tomto článku projdeme nejzávažnější položky, vysvětlíme, proč jsou nebezpečné, a ukážeme, jak je opravit.

1. Broken Object Level Authorization (BOLA / IDOR)

BOLA je na prvním místě seznamu dlouhodobě a zaslouženě. Jde o situaci, kdy API neověřuje, zda má přihlášený uživatel skutečně přístup k objektu, který požaduje. Útočník změní ID v URL a získá cizí data.

Příklad z praxe: volání GET /api/orders/12345 vrátí objednávku číslo 12345. Pokud server neověří, zda patří přihlášenému uživateli, stačí postupně zkoušet čísla a stahovat cizí objednávky. Tato zranitelnost stála za úniky dat u mnoha e-shopů a fintech aplikací.

Jak BOLA opravit

2. Excessive Data Exposure a Mass Assignment

Mnohé API vrací výrazně více dat, než klient potřebuje — spoléhají na to, že klient si relevantní pole vybere sám. To je špatný přístup. Útočník vidí veškerá data přenášená po síti a může využít interní pole (role, stav účtu, hash hesla), která nikdy neměla opustit backend.

Příbuznou zranitelností je Mass Assignment: klient pošle JSON s extra poli (například "isAdmin": true) a server je bez validace zapíše do databáze.

Jak problém řešit

3. Injection v API: SQL, NoSQL, Command Injection

Injection útoky jsou staré, ale v kontextu API nabývají nových podob. REST API přijímá vstupy v URL parametrech, query stringu, JSON těle i hlavičkách — a každý z těchto vstupů je potenciálním vektorem.

SQL injection přes API endpoint GET /api/products?category=shoes' OR '1'='1 může vrátit celý obsah databáze. NoSQL injection v MongoDB je specifická: útočníci využívají operátory jako $gt, $where nebo $regex vložené do JSON těla požadavku. Command injection hrozí všude, kde backend volá systémové příkazy na základě uživatelského vstupu.

Jak injection zranitelnosti eliminovat

4. Autentizace, OAuth a správa API klíčů

Slabá autentizace je vstupní branou pro celou řadu dalších útoků. V oblasti API se nejčastěji setkáváme s těmito problémy:

Chyby v implementaci JWT

JSON Web Tokeny jsou rozšířené, ale jejich špatná implementace je zákeřná. Nejčastější chyby: použití algoritmu none (server akceptuje nepodepsané tokeny), slabý signing secret, příliš dlouhá expirace tokenů nebo absence blacklistingu odvolaných tokenů.

OAuth 2.0 v praxi

OAuth 2.0 je standard pro delegovanou autorizaci, ale jeho špatná implementace je velmi častá. Kritické požadavky: vždy validujte redirect_uri přesnou shodou (ne prefixem), používejte PKCE pro public clients, stav (state parametr) chraňte před CSRF.

API klíče

5. Rate Limiting a ochrana před zneužitím

API bez rate limitingu je jako dveře bez zámku. Útočník může provádět credential stuffing (testování ukradených přihlašovacích údajů), scraping dat, brute force na hesla nebo způsobit DoS zahlcením serveru.

Rate limiting nestačí implementovat pouze na úrovni IP adresy — sofistikovaní útočníci distribuují provoz přes botnet s tisíci IP adresami. Efektivní ochrana vyžaduje kombinaci více přístupů:

Nezapomeňte vracet správné HTTP kódy: 429 Too Many Requests s hlavičkou Retry-After. V odpovědi sdělte limit, ale ne tak, aby útočník snadno kalibroval svůj útok.

Jak správně testovat bezpečnost API

Znalost zranitelností je polovina úspěchu — druhá polovina je schopnost je najít dříve než útočník. Bezpečnostní testování API by mělo být součástí vývojového procesu (shift-left security), ne jednorázovou aktivitou před nasazením.

Nástroje pro testování API

Metodika testování

  1. Začněte inventarizací všech API endpointů — zjistíte překvapení (zapomenuté, neudržované endpointy).
  2. Ověřte autorizaci na každém endpointu: přihlaste se jako uživatel A a zkuste přistupovat k datům uživatele B.
  3. Testujte boundary hodnoty a nevalidní vstupy — sledujte, zda server vrací detailní chybové zprávy (information disclosure).
  4. Zkontrolujte HTTP metody: endpoint, který má podporovat jen GET, by neměl akceptovat PUT nebo DELETE.
  5. Prověřte bezpečnostní hlavičky odpovědí: Content-Security-Policy, X-Content-Type-Options, Strict-Transport-Security.

Profesionální penetrační testování API od SecureOn.cz zahrnuje kompletní pokrytí OWASP API Security Top 10, manuální testování logiky aplikace a detailní report s prioritizovanými nálezy a doporučeními pro nápravu. Kontaktujte nás pro nezávaznou konzultaci.

Závěr: API bezpečnost jako kontinuální proces

Zabezpečení API není jednorázový projekt — je to kontinuální proces zahrnující bezpečný návrh, code review, automatizované testování v CI/CD a pravidelné penetrační testy. Nejnebezpečnější jsou zranitelnosti, které nevyžadují technickou sofistikovanost útočníka: BOLA a excessive data exposure může zneužít kdokoli s browserem a základními znalostmi HTTP.

Zavedením OWASP API Security Top 10 jako checklistu do vašeho procesu vývoje, implementací správné autentizace a autorizace, rate limitingem a pravidelným testováním výrazně snížíte pravděpodobnost úspěšného útoku. Investice do API bezpečnosti je vždy levnější než řešení úniku dat.

Potřebujete poradit s kybernetickou bezpečností?

Naši experti jsou připraveni zhodnotit vaši situaci. První konzultace je zdarma.

Získat bezplatnou konzultaci