Proč se vyplatí ověřovat JWT tokeny na serveru, ne v klientu?
Jak vypadá první měsíc a kde se nejčastěji chybuje V praxi strávíte první týdny čtením existujícího kódu, nastavováním prostředí a opravou malých chyb. Není ostuda trávit hodiny nad konfigurací. Ostudou je nezeptat se, když něco nefunguje, a blokovat tým na dva dny. Zvykněte si psát si poznámky a ptát se konkrétně: „Zkoušel jsem to takto, dostal jsem tuto chybu, co ještě můžu ověřit?" Tím ukážete, že přemýšlíte, ne že jen čekáte na odpověď.
Zvlášť opatrně nastavte limit pro zápisové operace. Požadavky na vytvoření účtu, odeslání komentáře nebo nahrání souboru mají být výrazně omezené. Naopak statické soubory a obrázky by měly být z limitu vyjmuté, ideálně přes reverzní proxy. Do middlewaru přidejte skip pro zdravotní kontrolu a interní volání. Bez toho vám monitoring nebo load balancer může vyčerpat kvótu a aplikace přestane odpovídat.
Začněte tím, že si vyberete jednu technologii a v ní postavíte dvě až tři menší aplikace. Nejde o velikost, ale o to, abyste uměli vysvětlit každé rozhodnutí: proč jste zvolili danou strukturu, jak řešíte chyby a co byste příště udělali jinak. Na pohovoru se často ptají na váš projekt víc než na teorii. Připravte si proto krátké povídání o tom, co bylo nejtěžší a jak jste to vyřešili.
Každý odhad vývojového úkolu stojí na viditelných činnostech: analýza, psaní kódu, testy. Jenže skutečný čas často spotřebují aktivity, které v zadání nejsou. Když je nezapočtete, odhad se rozpadne a termín přestane platit. Nejde přitom o nic záhadného — skryté činnosti se dají vysledovat a ocenit stejně jako psaní kódu.
První práce v IT není o tom, kolik toho umíte nazpaměť, ale jestli dokážete doručit funkční řešení a nebát se zeptat. Firmy u juniorů nečekají hotové odborníky. Hledají lidi, kteří se učí rychle, čtou cizí kód a umí přiznat, že něco nevědí. Pokud na pohovoru předstíráte znalosti, které nemáte, pozná se to na prvním code review.
Volba licence není otázkou ideologie, ale toho, jak chcete, aby se váš kód šířil a kdo ho může použít. Permisivní licence (MIT, Apache 2.0, BSD) říkají: dělej si s kódem, co chceš, jen zachovej atribuci. Copyleftové licence (GPL, AGPL, LGPL) naopak vyžadují, aby odvozená díla zůstala pod stejnou licencí. První krok je vždy stejný: napište si na papír, co od projektu očekáváte. Chcete maximální adopci? Chcete, aby váš kód nemohl někdo uzavřít a prodávat jako proprietární produkt? Odpověď určí směr.
Typická chyba juniorů je přehlížení testů a verzovacích nástrojů. Naučte se základy práce s gitem ještě před nástupem: vytvořit větev, udělat commit s jasnou zprávou, vyřešit konflikt. Stejně důležité je umět napsat alespoň jednoduchý test. Nemusíte pokrýt všechno, ale měli byste vědět, proč test existuje a co ověřuje. Bez toho budete pro tým spíš přítěží než posilou.
JWT token je v dnešní době jeden z nejčastějších způsobů, jak zabezpečit API. Funguje tak, že server po přihlášení vydá klientovi podepsaný token, který obsahuje informace o uživateli a jeho oprávněních. Klient pak tento token posílá v hlavičce Authorization u každého požadavku. Token se skládá ze tří částí oddělených tečkou: hlavičky, datové části a podpisu. Právě podpis zajišťuje, že s obsahem tokenu nikdo nemohl manipulovat. Pokud server podpis neověří, je celé zabezpečení k ničemu.
JWT je mocný nástroj, ale jeho bezpečnost stojí na správné implementaci. Vždy ověřujte podpis i obsah, používejte krátkou platnost, chraňte klíč a správně ukládejte tokeny na klientu. Vyhnete se tak nejčastějším útokům, jako je podvržení identity nebo odcizení relace.
Praktický postup: nejprve zjistěte, zda váš projekt závisí na jiných licencích. Kombinace GPL a permisivní licence je obvykle možná, ale výsledek musí být GPL. Naopak kombinace permisivní a proprietární je možná jen tehdy, pokud permisivní licence nevyžaduje copyleft. Vždy si přečtěte kompatibilitu licencí, ne jen jejich názvy. Pokud si nejste jisti, použijte jednoduchou permisivní licenci – méně právních problémů, více uživatelů.
Na pohovoru i v práci platí, že komunikace je součást technické dovednosti. Odpovídejte stručně, ale konkrétně. Když něco nevíte, řekněte to a doplňte, jak byste to zjistili. Uveďte příklad, kdy jste se něco naučili sami. Zaměstnavatelé oceňují spíš poctivost a ochotu hledat řešení než dokonalé znalosti. První práce je začátek, ne cíl. Nejvíc se naučíte v prvních měsících, když budete aktivně žádat o zpětnou vazbu a přijímat kritiku bez obrany.
Nejčastější chyba je plošné nasazení jednoho limitu na celou aplikaci. Tím zpomalíte i běžné prohlížení a lidé začnou dostávat 429 i při normálním používání. Lepší je rozdělit trasy podle citlivosti. Veřejné čtení může mít vyšší limit, přihlašování a odesílání formulářů nižší. Do klíče, podle kterého se počítá, dejte kombinaci IP adresy a cesty, případně identifikátoru uživatele, pokud je přihlášený. Tím zabráníte tomu, aby jeden uživatel na sdílené IP blokoval ostatní.