Architektonický styl REST
REST (Representational State Transfer) není protokol, ale styl návrhu. Pokud jej API dodržuje, říkáme mu RESTful. Pro nás je klíčové, že REST je postaven na sémantice HTTP.
Klíčové principy k analýze:
- Bezstavovost (Statelessness): Server si tě nepamatuje. Každý request musí obsahovat vše (např.
Authorizationheader). - Jednotné rozhraní: Manipulace se zdroji (Resources) pomocí standardních metod GET, POST, PUT, DELETE.
- Endpointy: Unikátní URL identifikující zdroj (např.
/v1/produkty/42).
Složení API požadavku
Při zachytávání v Burp Suite se soustřeď na tyto čtyři části:
Endpoint (URL)
Cesta ke zdroji. Hledej verze (v1, v2) a skryté parametry.
Headers
Metadata jako Content-Type: application/json nebo API klíče.
HTTP Method
Určuje operaci (CRUD). Zkus změnit GET na POST nebo DELETE!
Body (Tělo)
Samotná data v JSON formátu, která odesíláš serveru.
Struktura JSON (Data Exchange)
JSON je de facto standard pro výměnu dat. Je lehký, čitelný a pro nás snadno modifikovatelný.
api_response — application/json
{
"id": 42,
"nazev": "Bezdrátová sluchátka",
"skladem": true,
"parametry": { "barva": "černá" },
"tagy": ["elektro", "audio"]
}
"id": 42,
"nazev": "Bezdrátová sluchátka",
"skladem": true,
"parametry": { "barva": "černá" },
"tagy": ["elektro", "audio"]
}
Bezpečnost a Autentizace
Většina bugů v API vzniká špatnou implementací autorizace:
- JWT (JSON Web Token): Token, který nese informaci o uživateli. Hledej chyby v jeho validaci.
- Rate Limiting: Ochrana proti DoS. Zkus, kolik požadavků server snese, než tě zablokuje.
- IDOR: Zkus změnit ID v endpointu (např.
/user/100na/user/101).