Doba platnosti přístupového tokenu má být krátká, v řádu minut. Obnovovací token uložte na serveru a mějte možnost ho zneplatnit. Stateless JWT nelze odvolat před vypršením, což je častý omyl. Pokud potřebujete okamžité odhlášení, veďte si černou listinu nebo používejte serverovou session. Datová část tokenu není šifrovaná, pouze kódovaná base64. Neukládejte do ní hesla, rodná čísla ani interní identifikátory.
Verzovací systém není nástroj, který si nastavíte jednou a pak na něj zapomenete. U webových projektů se do něj sahá několikrát denně, takže záleží hlavně na návycích. První krok nejsou příkazy, ale rozhodnutí, co vlastně chcete sledovat. Do repozitáře patří zdrojové soubory, konfigurace šablon, skripty sestavení a dokumentace. Naopak závislosti stažené správcem balíčků, výstupní složky sestavení, lokální konfigurace s hesly a nahrané soubory od uživatelů tam nepatří.
Vývoj v Swiftu je řemeslo. Nejde o to naučit se všechny konstrukce jazyka, ale o to vědět, kdy kterou použít. Když budete dbát na správu paměti, jasný tok stavu a testování na reálném zařízení, předejdete většině problémů, které jinak řešíte až ve chvíli, kdy si na ně stěžují uživatelé.
Druhá častá past je ignorování prostředí a konfigurace. Když se testovací a produkční prostředí liší v verzích, přístupech nebo datech, pipeline bude zelená a přesto to v produkci spadne. Držte konfiguraci oddělenou od kódu, ideálně v podobě, kterou lze verzovat a kontrolovat. Stejně tak nestačí měřit jen počet nasazení. Sledujte, jak zařídit malou kuchyni dlouho trvá od commitu po běžící změnu, kolik změn selže a jak rychle se systém vzpamatuje z výpadku. Bez těchto čísel se každé zlepšení mine účinkem.
Kam ukládat token a jak ho chránit Token v prohlížeči nepatří do localStorage. JavaScript k němu má přístup, takže jakýkoli XSS útok ho přečte. Bezpečnější je HttpOnly cookie s příznakem Secure a SameSite=Strict. Tím se token nedostane do JavaScriptu. Pozor na CSRF: cookie se posílá automaticky, takže přidejte CSRF token nebo použijte dvojici přístupový a obnovovací token s krátkou platností.
Při ověřování kontrolujte všechny povinné údaje: iss, aud, exp, nbf. Vynechání aud znamená, že token určený pro jinou službu projde. Clock skew nastavte na několik sekund, ne na hodiny. Podepisovací klíč měňte při každém podezření na kompromitaci a podporujte rotaci klíčů přes kid v hlavičce. Testujte chybové stavy: token bez podpisu, token s pozměněným jedním znakem, token po expiraci. Právě tam se chyby projeví nejdřív.
Nikdy nepoužívejte algoritmus „none”. Útočník pošle token s hlavičkou {“alg”:”none”} a prázdným podpisem. Starší knihovny to akceptovaly. Vždy explicitně určete očekávaný algoritmus, například HS256 nebo RS256, a při ověřování ho vynuťte. U RS256 nikdy nepoužívejte veřejný klíč jako tajný pro HS256. Tato záměna umožní útočníkovi podepsat token veřejně známým klíčem.
JWT token se skládá ze tří částí oddělených tečkou: hlavičky, datové části a podpisu. Hlavička určuje algoritmus, datová část nese tvrzení (claims), podpis zajišťuje integritu. Pokud server podpis neověřuje, kdokoli si může vyrobit token s libovolnou identitou. To je první a nejčastější chyba. Knihovny pro práci s JWT mají ověření podpisu jako volitelný krok a při nesprávné konfiguraci se přeskočí.
Typické chyby, které odhad nafukují nebo naopak podhodnocují: zapomenutí na code review a jeho zapracování, podcenění testovacích dat, ignorování závislosti na jiném týmu, opomenutí dokumentace a nasazení. Vyvaruj se i opačného extrému – přidání jednoho velkého „na jistotu” čísla. To nikomu nic neřekne a stejně se splete. Lepší je rozepsat skryté činnosti jako samostatné řádky s vlastním časem. Když se odhad netrefí, vidíš přesně, která položka selhala.
Prvním krokem je pochopit, že Swift není jen jazyk, ale i způsob myšlení. Silné typování a volitelné hodnoty nejsou překážka, ale nástroj. Mnozí začátečníci obcházejí volitelné hodnoty pomocí vynuceného rozbalení, tedy operátoru s vykřičníkem. Dokud data existují, vše funguje. Jakmile ale přijdou z API prázdná nebo se změní stav aplikace, dojde k pádu. Místo vynuceného rozbalení používejte podmíněné rozbalení nebo výchozí hodnoty. Ušetříte si hodiny hledání chyby, která se projeví jen občas.
Testování není volitelná část. Nestačí, že aplikace běží na simulátoru. Chování na skutečném zařízení se liší v paměti, výkonu i v přerušeních, jako je příchozí hovor nebo přepnutí do jiné aplikace. Právě tam se projeví špatně ošetřený životní cyklus. Napište alespoň testy pro části, které zpracovávají data, a zkuste aplikaci násilně ukončit a znovu otevřít. Pokud se stav po restartu rozsype, máte co opravovat.
In the event you loved this article and you want to receive more info concerning http://palangshim.com/space-Uid-5422260.html please visit our site.