Editing
Jak správně zabezpečit API pomocí JWT tokenů
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Výběr open source licence je jedním z nejdůležitějších rozhodnutí, které jako vývojář uděláte. Licenční podmínky určují, jak mohou ostatní váš kód používat, upravovat a šířit. Špatná volba může vést k právním problémům nebo k tomu, že váš kód skončí v projektu, s jehož filozofií nesouhlasíte. Než začnete hledat konkrétní licenci, položte si základní otázky: Chcete, aby každý mohl kód použít bez omezení, nebo chcete, aby úpravy zůstaly otevřené?<br><br>Na závěr si ověřte, že každý akční krok má smysl pro celý tým, ne jen pro někoho. Pokud někdo navrhne „nový plugin do našeho nástroje", zeptejte se, jak to pomůže ostatním a co to obnáší za práci navíc. Dobrá retrospektiva končí tím, že každý rozumí, co se bude dít dál a proč. A hlavně – dodržte to. Nic nezabije důvěru v retrospektivu rychleji, než když se naplánované kroky nikdy neuskuteční. Struktura je jen nástroj, ale bez pravidelného vyhodnocování zůstane prázdnou formalitou.<br><br>Migrace databáze mezi dvěma odlišnými systémy není jen kopírováním dat. MySQL a PostgreSQL se liší v datových typech, chování transakcí, syntaxi SQL i v přístupu k indexům. Nejčastější chybou bývá spoléhat na automatické nástroje bez předchozí analýzy schématu. Než začnete, zmapujte si všechny tabulky, pohledy, triggery a uložené procedury. Zvláštní pozornost věnujte sloupcům typu ENUM, které PostgreSQL nepodporuje nativně – převeďte je na text s CHECK omezením nebo na samostatnou číselníkovou tabulku.<br><br>Jak začít měřit pokrytí smysluplně Základem je vybrat správný nástroj, který umí měřit pokrytí podle řádků, vět a podmínek. Pro jazyky jako Python se nabízí standardní knihovna pro měření, pro JavaScript existují nástroje zabudované přímo do testovacích běhů. Nejdůležitější je měřit pokrytí na úrovni jednotkových testů, ale také integračních testů – kombinace obojího dá lepší obrázek. Spusťte testy s měřením při každém běhu, ne jen občas, abyste měli aktuální data. Ukládejte výsledky do reportu, který si tým může prohlížet v rámci CI.<br><br>Dalším častým problémem je rychlý skok k řešení dřív, než je problém dobře pochopen. Když se objeví podnět typu „pravidelně nám padá testovací prostředí", zeptejte se „jak často", „kdy" a „co to způsobuje". Teprve s fakty můžete navrhnout smysluplné opatření. Pokud nemáte data, klidně si naplánujte, že příští sprint budete sledovat četnost výpadků a podle toho se rozhodnete. Strukturovaná zpětná vazba totiž není o rychlých opravách, ale o tom, abyste příště dělali méně chyb.<br><br>Při návrhu rozhraní API se dnes JWT tokeny staly standardem pro ověřování požadavků. Jejich hlavní výhodou je bezstavovost – server si nemusí pamatovat relaci, protože veškeré potřebné informace jsou přímo v tokenu. Tento přístup usnadňuje škálování služeb, ale vyžaduje důslednou implementaci. Bez správného nastavení se totiž JWT snadno stane slabým místem celé aplikace. Než token začnete používat, věnujte pozornost třem klíčovým oblastem: podepisování, expiraci a přenosu dat.<br><br>Prvním krokem je volba algoritmu pro podpis. Vždy používejte asymetrické podepisování, například algoritmus RS256. Tím zajistíte, že token podepíše pouze autorizační server a ostatní služby si pouze ověřují podpis pomocí veřejného klíče. Nikdy nepoužívejte symetrický algoritmus HS256, pokud nemáte jediný server a plnou kontrolu nad sdíleným tajemstvím. Pokud dojde k úniku tajemství, útočník může podepsat libovolný token. U asymetrického přístupu je riziko omezeno na kompromitaci soukromého klíče, který je uložen jen na jednom místě.<br><br>Pokrytí začíná být užitečné, když ho používáte k hledání děr v testech, ne jako cíl sám o sobě. Dobrý postup je analyzovat report po každém větším refaktoringu – pokud pokrytí kleslo, pravděpodobně jste změnili chování, které testy nekontrolovaly. Naopak pokud pokrytí roste, ale počet chyb se nesnižuje, je to známka, že testy nejsou kvalitní. Sledujte také pokrytí u nově přidaných částí kódu – to je nejcennější ukazatel, protože starý kód může mít vysoké pokrytí, ale už netestuje to podstatné.<br><br>Retrospektiva týmu často sklouzne do frází jako „bylo to dobré" nebo „příště to zkusíme líp". Bez struktury se ale ztrácí podstata – konkrétní situace, fakta a návrhy na změnu. Vyzkoušejte strukturovanou zpětnou vazbu, která dává každému členu prostor mluvit o tom, co opravdu ovlivňuje jeho práci. Klíčem je rozdělit reflexi na tři jasné oblasti: co fungovalo, co nefungovalo a co s tím uděláme.<br><br>Nejčastější chyby při výběru licence Jednou z nejčastějších chyb je použití licence bez pochopení jejích podmínek. Například GPL je silný copyleft a pokud ji použijete v knihovně, může to odradit komerční vývojáře, kteří by jinak váš kód rádi využili. Naopak u API nebo malých utilit je permisivní licence často výhodnější. Dalším problémem je kombinování licencí – pokud do projektu přidáte kód pod GPL a váš hlavní kód je pod MIT, celý projekt může být ovlivněn. Vždy si ověřte kompatibilitu použitých knihoven.
Summary:
Please note that all contributions to IT-Core are considered to be released under the GNU Free Documentation License 1.3 or later (see
IT-Core:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Tools
What links here
Related changes
Page information