Jak sdělit zákazníkovi odhad času bez planých slibů

From IT-Core
Jump to navigation Jump to search


Nezapomínejte ani na ochranu proti CSRF útokům, pokud používáte cookies. Jednoduchým řešením je vlastní hlavička, kterou server vyžaduje u každého požadavku, nebo použití SameSite atributu s hodnotou 'Strict' či 'Lax'. Tím zajistíte, že token nebude odeslán z cizího webu. Na závěr: JWT je výkonný nástroj, ale vyžaduje pečlivou implementaci. Věnujte čas testování scénářů, jako je vypršení, manipulace s tokenem nebo pokus o opětovné použití starého tokenu. Jen tak dosáhnete skutečného zabezpečení vašeho API.

Při návrhu API myslete na to, že JWT je bezstavový – server si nepamatuje, komu token vydal. To znamená, že pokud uživatele zablokujete, token zůstane platný až do expirace. Proto je vhodné zavést mechanismus pro kontrolu verze tokenu (např. číslo v databázi) nebo krátkou dobu platnosti. Pro odvolání přístupu můžete také udržovat černou listinu JTI (jedinečného identifikátoru tokenu) na serveru, ale to částečně ztrácí výhodu bezstavovosti.

EXPOSE 3000

V praxi se vyplatí komunikovat odhad jako interval, ne jako jeden bod. Například ,,předpokládám, že to bude hotové mezi středou a pátkem" dává prostor pro drobné komplikace a vy se vyhnete situaci, kdy musíte nedodržet slib. Pokud zákazník trvá na přesném datu, nabídněte mu kompromis: ,,Jistě to bude do pátku, ale pokud to půjde rychleji, ozvu se dříve." Tím přebíráte odpovědnost, ale necháváte si manévrovací prostor. Důležité je, abyste nikdy neřekli ,,určitě" nebo ,,garantuji", pokud si nejste jisti. Raději použijte ,,očekáosvětlení v obývákuám" nebo ,,plánuji".

Jak na udržovatelnou dokumentaci bez velké námahy Nejlepší dokumentace je ta, která se tvoří automaticky a žije s kódem. Místo ručního psaní Markdownu zkuste generátory, které popis vytvoří z anotací v controlleru nebo ze schémat. Důležité je, aby se dokumentace aktualizovala při každé změně – jinak se z ní stane lež. Pokud takový nástroj zavést nemůžete, alespoň si vytvořte šablonu a doplňte popis hned při psaní endpointu, ne až na konci sprintu. In case you have virtually any questions with regards to exactly where along with how to employ barvy stěn do obýváku, you are able to e mail us in our own web-site. Pozor na to, že dokumentace má být čitelná i pro člověka, který projekt nezná – vyhněte se interním zkratkám a slovům, která dávají smysl jen vám.

Druhým kritickým bodem je expirace tokenu. Krátká platnost (např. 15 minut) snižuje okno pro zneužití, ale zvyšuje zátěž na přihlašování. Řešením je kombinace krátkodobého přístupového tokenu a dlouhodobého refresh tokenu. Refresh token by měl být uložen na serveru a měl by mít možnost být zneplatněn – například při odhlášení nebo změně hesla. Ukládejte refresh token v HttpOnly cookie, abyste zabránili přístupu z JavaScriptu a snížili riziko XSS útoků.

Častou chybou je také to, že lidé zákazníkovi slibí termín bez ohledu na vlastní kapacitu. Mějte vždy přehled o tom, kolik práce už máte. Když cítíte, že termín je nereálný, rovnou to řekněte: ,,Tento týden nestíhám, ale první volný termín je příští středu." Taková věta působí profesionálně. Pokud ale už jednou slib padl a vy víte, že ho nestíháte, kontaktujte zákazníka co nejdříve – ideálně dřív, než se sám zeptá. Vysvětlete důvod a nabídněte nový termín, který je znovu s rezervou. Tím ukazujete, že situaci kontrolujete a že vám na něm záleží.

Posledním tipem je psát si závazky do smlouvy nebo do e-mailu. Když máte termín černé na bílém, snáz se vám ho dodrží a vy se vyhnete dohadům. Ale pozor: smlouva by měla obsahovat i to, že termín je orientační a může se posunout v případě vyšší moci. Tím se chráníte, ale nezahazujete kredit. Vždy se snažte dodat dřív, než jste řekli, i kdyby to bylo jen o den. Zákazník pak vnímá, že jste spolehliví, a příště vám uvěří bez zbytečných otázek. Komunikace odhadu je totiž hlavně o budování důvěry – a ta se staví na upřímnosti, ne na planých slibech.

Dalším krokem je verze API. V dokumentaci vždy uvádějte, pro kterou verzi popis platí. Pokud měníte chování endpointu, navrhněte změnu tak, aby starší klienti nebyli rozbití (např. pomocí rozšíření nebo nového endpointu). Typická chyba: backend změní formát data z „YYYY-MM-DD" na „DD.MM.YYYY" a frontend začne padat. Uveďte proto v dokumentaci i příklady formátů, a pokud je to možné, držte se konvencí, které frontend očekává.

Prvním krokem je správná volba algoritmu podpisu. Doporučuje se používat asymetrický algoritmus RS256, kde soukromý klíč drží pouze server a veřejný klíč slouží k ověření. Pokud použijete symetrický HS256, musíte sdílet stejný tajný klíč mezi všemi službami, což zvyšuje riziko úniku. Při podepisování vždy nastavte dostatečnou délku klíče – pro RS256 minimálně 2048 bitů. Nikdy nepoužívejte algoritmus 'none', který umožňuje podepsat token bez jakéhokoli klíče.