5 moderních funkcí JavaScriptu, které změní váš kód

From IT-Core
Revision as of 13:52, 29 August 2026 by EdenHerrmann448 (talk | contribs) (Created page with "<br>V neposlední řadě pozor na algoritmus podpisu. Knihovny pro JWT někdy umožňují v hlavičce tokenu specifikovat typ algoritmu, což vede ke známému zranitelnosti „algorithm confusion". Pokud server podporuje symetrický i asymetrický podpis, může útočník podepsat token veřejným klíčem, který server považuje za tajný klíč. Tomu se vyhnete tím, že povolíte pouze jeden konkrétní algoritmus, a to nejlépe asymetrický, jako je RS256. Také s...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


V neposlední řadě pozor na algoritmus podpisu. Knihovny pro JWT někdy umožňují v hlavičce tokenu specifikovat typ algoritmu, což vede ke známému zranitelnosti „algorithm confusion". Pokud server podporuje symetrický i asymetrický podpis, může útočník podepsat token veřejným klíčem, který server považuje za tajný klíč. Tomu se vyhnete tím, že povolíte pouze jeden konkrétní algoritmus, a to nejlépe asymetrický, jako je RS256. Také si pohlídejte, že server nepřijímá tokeny bez podpisu nebo s prázdným podpisem.

Nejčastější past: použití funkce na sloupci v podmínce Klasickým problémem, který znehodnotí i sebelépe navržený index, je obalení sloupce funkcí. Pokud napíšete WHERE DATE(created_at) = '2025-01-01', databáze nemůže použít index na created_at, protože musí funkci aplikovat na každý řádek. Místo toho porovnávejte rozsah: WHERE created_at >= '2025-01-01' AND created_at
První praktický rekonstrukce koupelny krok za krokem je získat přístupový klíč. Bez něj vás úložné prostory v malém bytěětšina API odmítne. Klíč obvykle najdete v nastavení účtu u dané služby. Nikdy ho nevkládejte přímo do kódu, který posíláte jiným lidem. Místo toho ho uložte do proměnné prostředí nebo do konfiguračního souboru, který není součástí verzování. Typická chyba začátečníků je, že klíč vloží do veřejného repozitáře. To je bezpečnostní průšvih, který může vést ke zneužití účtu.

Když databáze začne zpomalovat, většina vývojářů sáhne po prvním dostupném nástroji a začne přidávat indexy na všechny sloupce, které je napadnou. Výsledek bývá přesně opačný, než se čekalo: dotazy se nejen nezrychlí, ale celková zátěž serveru vzroste. Každý index totiž něco stojí – zápis do tabulky se prodlouží, disková paměť se zaplní a optimalizátor se začne rozhodovat hůře, protože má příliš mnoho možností. Než začnete cokoliv měnit, vždy si nejprve změřte, kde skutečně dochází ke zpoždění.

Základním krokem je analýza plánu provedení dotazu. Většina databázových systémů nabízí příkazy jako EXPLAIN nebo EXPLAIN ANALYZE. Z nich zjistíte, které části dotazu se provedou sekvenčním prohledáváním tabulky a kde se používá index. Typickou chybou je spoléhat na to, že index na sloupci použitého ve WHERE klauzuli automaticky urychlí vše. Ve skutečnosti záleží na selektivitě – pokud sloupec obsahuje jen pár unikátních hodnot, index nepomůže a optimalizátor ho stejně přeskočí. Sledujte proto odhad počtu řádků, který plán uvádí, a porovnejte ho s realitou.

Když začnete s API, první věc, kterou musíte udělat, není psát kód, ale pochopit, co vlastně API je. Zjednodušeně řečeno jde o rozhraní, které umožňuje dvěma programům komunikovat. Nejčastěji se setkáte s REST API, které pracuje s daty ve formátu JSON. Než začnete cokoliv programovat, zjistěte si, jaké endpointy (adresy) daná služba nabízí. Většina poskytovatelů má dokumentaci, kde najdete příklady požadavků a odpovědí. Pokud dokumentaci přeskočíte, budete jen hádat a to vede k chybám.

Při práci s daty mějte na paměti, že JSON může obsahovat vnořené struktury. Pokud s daty pracujete v jazyce, jako je Python, použijte knihovnu requests a převeďte odpověď na slovník. Pak můžete snadno přistupovat k jednotlivým položkám. Ujistěte se, že zpracováváte i prázdné odpovědi nebo odpovědi s chybovým objektem. Pokud na to zapomenete, program spadne s výjimkou, kterou neumíte vysvětlit.

V neposlední řadě věnujte pozornost počtu dotazů. Často se stává, že aplikace provede deset dotazů osvětlení v obýváku cyklu místo jednoho, který by všechny potřebné údaje získal najednou. Spojení tabulek pomocí JOIN je sice občas považováno za pomalé, ale ve většině případů je stále výrazně efektivnější než volání v cyklu. Pokud se bez cyklu neobejdete, zkuste alespoň dávkové zpracování – sbírejte data do pole a dotaz proveďte pro celý seznam hodnot najednou. Po každé změně vždy ověřte, zda se plán provedení skutečně zlepšil, a měřte čas v reálném provozu, ne jen na malých testovacích datech.

Dalším zásadním problémem je délka platnosti tokenu. Pokud nastavíte expiraci na dny nebo týdny, vytváříte časově neomezené zadní vrátka. Útočník, který token získá, ho může používat dlouho. Řešením jsou krátkodobé tokeny s dobou platnosti v minutách. Pro pohodlí uživatele pak použijte takzvaný refresh token, který je uložen na bezpečném místě, například v HttpOnly cookie, a slouží pouze k získání nového přístupového tokenu. Tyto dva typy tokenů by měly mít odlišné struktury i doby platnosti.

If you cherished this short article and you would like to obtain extra data about jak Zařídit malou Kuchyni kindly pay a visit to the web page.