JWT vs. session: Jak zabezpečit API a vyhnout se pastem
Základním kamenem je jazyk a nástroje. Pro začátek si vystačíte s Kotlinem, který je modernější a méně ukecaný než Java. Naučte se, jak fungují korutiny pro asynchronní práci a jak vypadá architektura s ViewModelem a LiveData. Nepouštějte se hned do komplikovaných knihoven třetích stran – nejdřív si osvojte čistý Android SDK. Doporučuji psát si vlastní malé projekty, kde si vyzkoušíte práci s RecyclerView, dialogy a životním cyklem. Vyhněte se opisování kódu z tutoriálů bez pochopení – to je nejrychlejší cesta k tomu, že vlastní aplikaci nerozchodíte.<br>
<br>
<br>
<br>
Co nejčastěji zkazí začátečníci a jak se tomu vyhnout Častým omylem je snaha otestovat všechno najednou. Místo toho si zvolte jednu malou oblast – třeba přihlašovací formulář – a věnujte se jí důkladně. Zkuste různé kombinace vstupů: prázdné pole, příliš dlouhý řetězec, diakritiku nebo neplatný e-mail. Zapisujte si každý test, ať už skončil úspěchem, nebo chybou. To ukáže vaši pečlivost a systematičnost.<br>
<br>
<br>
<br>
Pozor také na to, co do payloadu dáváte. Nikdy tam neukládejte citlivé údaje jako hesla, e-maily nebo osobní informace, protože payload je jen base64 zakódovaný, tedy snadno čitelný. Místo toho do tokenu vložte identifikátory: ID uživatele, ID role nebo oprávnění. Server si pak podrobnosti vždy dohledá. Pokud potřebujete token okamžitě zneplatnit, narazíte na limity stateless přístupu. Jediná spolehlivá metoda je udržovat si na serveru seznam zneplatněných tokenů. To sice zavádí stav, ale pro případy, jako je odhlášení nebo změna hesla, je to nezbytné.<br>
<br>
<br>
<br>
Poslední rada: publikování není konec, ale začátek. Připravte si podklady pro obchod – popis, grafiku a ikonu. Všímejte si recenzí a zpětné vazby, ale nenechte se zlomit kritikou. Každý update by měl opravovat chyby a přinášet malá vylepšení, ne zásadní přepisování. Pokud se budete držet tohoto postupu, zjistíte, že vývoj pro Android je řemeslo, které se učí praxí – a první aplikaci budete mít hotovou dřív, než čekáte.<br>
<br>
<br>
<br>
První věc, kterou si uvědomte, je, že tester bez praxe není žádná výjimka. Firmy často hledají lidi, kteří přemýšlejí systematicky a mají zájem se učit, ne nutně ty, kteří už mají za sebou desítky projektů. Důležité je zaměřit se na to, co můžete ukázat, i když nemáte oficiální zkušenosti. Začněte tím, že si osvojíte základy testovacího procesu – jak psát chybové hlášení, co je to test case a jak vypadá testovací plán. Tohle jsou pojmy, které budete používat každý den.<br>
<br>
<br>
<br>
Nezapomínejte ani na cache závislostí. Bez ní se každý běh pipeline stahuje znovu, což je pomalé a drahé. GitHub Actions má vestavěnou akci pro cache, kterou můžete použít pro npm, pip nebo jiné balíčky. Stačí definovat klíč podle hash souboru package-lock.json a cesty, které chcete ukládat. Tím se doba běhu zkrátí často na polovinu. Zkontrolujte si ale, že cache neobsahuje citlivá data, protože je přístupná jen pro daný běh, ale může být uložena déle.<br>
<br>
<br>
<br>
Na závěr si pohlídejte, jak tokeny přijímáte. Vždy ověřujte, že přicházejí jen z očekávaných zdrojů, a omezte CORS na konkrétní domény, kterým důvěřujete. Kontrolujte také, že algoritmus v hlavičce tokenu odpovídá tomu, který jste nastavili na serveru. Tím zabráníte útokům typu alg confusion. JWT není všelék, ale když respektujete jeho principy – krátkou platnost, silný podpis a bezpečné uložení – získáte solidní základ pro ochranu vašeho API bez zbytečné složitosti.<br>
<br>
<br>
<br>
JWT je ale jen podepsaný řetězec. Jeho bezpečnost stojí na tom, jak ho vytvoříte a jak s ním zacházíte. Nejdůležitější je podpis. Vždy používejte asymetrický algoritmus, jako je RS256, a soukromý klíč držte výhradně na serveru. Veřejný klíč pak můžete distribuovat klientům, kteří jen ověřují podpis. Vyhněte se symetrickému HS256, pokud nemáte jen jednu službu, protože ten vyžaduje sdílení tajemství, které se snadno dostane tam, kam nemá. A nikdy, ale opravdu nikdy nepodepisujte token algoritmem, který si klient může zvolit sám – to je cesta k obejití celé ochrany.<br>
<br>
<br>
<br>
Při nasazení na server se často zapomíná na ošetření selhání. Pokud se build povede, ale nasazení selže kvůli výpadku serveru, pipeline skončí chybou, ale co dál? Mějte připravený rollback – buď starší artefakt, nebo skript, který vrátí předchozí verzi. GitHub Actions umožňuje definovat kroky, které se spustí vždy, i když předchozí selže, pomocí podmínky if: always(). To se hodí pro odeslání notifikace nebo pro vyčištění dočasných souborů.<br>
<br>
<br>
<br>
Nezapomeňte, že tester bez praxe má jednu velkou výhodu – čerstvý pohled. Nejste zatížení zažitými postupy, takže můžete objevit chyby, které zkušený tester přehlédne. Buďte zvídaví, ptejte se a nebojte se dělat chyby. Každá z nich je totiž krok k tomu, abyste se stali profesionálem.





