Důležité je také správně zacházet s asynchronním kódem. Express 5 podporuje async/await nativně, ale v Express 4 musíte chyby z asynchronních funkcí předávat pomocí next(err). Pokud tak neučiníte, aplikace může spadnout nebo zůstat viset bez odpovědi. Vždy obalujte asynchronní routy do pomocné funkce, která zachytí odmítnuté promise a předá je do middleware pro zpracování chyb. Tím zajistíte, že i neočekávaná chyba vrátí uživateli srozumitelnou odpověď.
Při odhadu času na vývojový úkol se většina lidí zaměří na samotné psaní kódu. Přitom právě „neviditelná” práce – procházení staršího kódu, ladění závislostí nebo dolaďování detailů – tvoří často polovinu celkové doby. Pokud tyto činnosti opomíjíte, vaše odhady budou pravidelně mimo a termíny se začnou posouvat.
Důležitá je i správa oprávnění databázového účtu, který aplikace používá. Nikdy nepřipojujte k databázi s právy administrátora, pokud to není nezbytné. Vytvořte samostatný účet s minimálními právy – jen pro potřebné operace (SELECT, INSERT, UPDATE, DELETE pro konkrétní tabulky). Tím omezíte škody, i když útočník najde zranitelnost. Stejně tak byste měli aplikaci běžet v izolovaném prostředí, kde nemá přístup k systémovým souborům.
Nakonec si ověřte své odhady na minulých úkolech. Když dokončíte práci, porovnejte odhad se skutečností a zapište si, co způsobilo rozdíl. Po pár iteracích získáte data, která vám umožní odhadovat přesněji. Skryté činnosti nezmizí, ale naučíte se je předvídat – a to je klíč k tomu, aby vaše odhady byly konečně realistické.
SQL injection patří mezi nejčastější a nejnebezpečnější zranitelnosti webových aplikací. Útočník do vstupních polí nebo URL zadá speciálně upravený SQL dotaz, čímž může získat přístup k databázi, odcizit data, nebo je dokonce smazat. Nejhorší je, že se této chybě dá poměrně snadno předejít. Základem je pochopit, jak k útoku dochází, a pak aplikovat správné obranné techniky.
Nejčastější chyby: kdy program spadne a jak je opravit První programy padají na dvou věcech: na chybném použití středníků a na špatném pochopení datových typů. Středník na konci příkazu je v C# povinný – bez něj překladač zahlásí chybu. Typy zas určují, co do proměnné smíte uložit. Pokud napíšete int cislo = “text”;, dostanete chybu, protože text nelze uložit do čísla. Řešení je jednoduché: používejte int pro celá čísla, string pro text a double pro desetinná místa. Než začnete psát kód, rozmyslete si, jaká data budete zpracovávat – ušetříte si tím spoustu oprav.
Kromě prevence je nutné mít detekci útoku. Ukládejte logy, které zaznamenávají neobvyklé SQL dotazy – například mnoho uvozovek, slova jako UNION, SELECT, OR. Tyto logy pravidelně procházejte a upozorňujte na podezřelou aktivitu. Pomoci může i web application firewall, který filtruje příchozí požadavky, ale nikdy se na něj nespoléhejte jako na jedinou obranu. Pravidelně testujte svou aplikaci na zranitelnosti, a to jak automatickými skenery, tak manuálním testováním.
První unit test obvykle selže hned na začátku, protože se testuje příliš mnoho najednou. Místo abyste psali test pro celou aplikaci, vyberte jednu malou jednotku – nejlépe funkci nebo metodu, která má jasný vstup a výstup. Dobrý kandidát je funkce, která počítá slevu, validuje e-mail nebo převádí měnu. Taková funkce se snadno testuje, protože nemá vedlejší účinky – nečte ze souboru, nepřistupuje k databázi a nekomunikuje s uživatelem.
Důležité je také rozlišovat mezi činnostmi, které se opakují u každého úkolu, a těmi, které přicházejí jen někdy. Například nastavování testovacích dat, psaní migrací nebo úprava CI pipeline může být jednorázová záležitost, ale pokud ji ignorujete, překvapí vás. Vytvořte si kontrolní seznam typických skrytých činností pro váš tým a před odhadem si ho projděte. Tím snížíte riziko, že na něco zapomenete.
Při odhadu myslete i na to, že ne vždy budete pracovat v nepřerušovaném bloku. Schůzky, e-maily nebo dotazy kolegů rozbíjejí koncentraci a každé přerušení vás stojí čas na opětovné ponoření do problému. Pokud víte, že máte den plný schůzek, neplánujte si na ten den úkol, který vyžaduje hluboké soustředění. Místo toho si rezervujte časové bloky, které jsou vyhrazeny pouze pro práci bez rušení.
Posledním bodem je osvěta a pravidelná údržba. Proškolte svůj tým, aby každý nový kód procházel kontrolou na SQL injection. Při každém nasazení aktualizujte frameworky, knihovny a databázové ovladače, které opravují známé bezpečnostní díry. Pokud dodržíte tyto kroky, výrazně snížíte riziko, že se SQL injection stane noční můrou vaší aplikace. Prevence je vždy levnější a méně stresující než řešení následků.
If you are you looking for more info regarding navštívit stránku check out the web site.
