Checklisty
Bezpečnostní kontrola
Deset otázek, které si polož u každé aplikace s uživateli. A hranice, za kterou patří odborník.
Tenhle seznam nenahrazuje bezpečnostní audit. Pokryje ale chyby, které se v aplikacích od začátečníků objevují nejčastěji.
Tajemství
Nikde v kódu není klíč, heslo ani token
Ani v komentáři, ani v testovacím souboru, ani „dočasně“.
Soubor .env je v .gitignore
Ve všech variantách:
.env,.env.local,.env.production.Žádná proměnná NEXT_PUBLIC_ neobsahuje tajemství
Cokoliv s touhle předponou je veřejné. Bez výjimky.
Uniklý klíč byl zrušený, ne jen smazaný z kódu
Historii Gitu si mohl kdokoliv stáhnout. Jediné řešení je vygenerovat nový a starý zneplatnit.
Data a oprávnění
Každý dotaz ověřuje vlastnictví záznamu
Nestačí ověřit, že je uživatel přihlášený. Musí se ověřit, že tenhle konkrétní záznam patří jemu.
Kontrola je na serveru, ne jen v rozhraní
Schované tlačítko není ochrana.
Vstupy se validují na serveru
Validace ve formuláři je pohodlí pro uživatele, ne bezpečnost.
Test oddělení dat mezi uživateli
Nejdůležitější bezpečnostní test u aplikace s účty.
Chci ověřit, že uživatel nemůže vidět cizí data.
1. Projdi všechna místa, kde se čtou nebo mění data uživatele.
2. U každého mi napiš, jestli se ověřuje, že záznam patří
přihlášenému uživateli – a jak přesně.
3. Kde tahle kontrola chybí, vypiš to jako seznam.
4. Napiš mi postup, jak si to ručně ověřím na dvou účtech, včetně
pokusu dostat se k cizímu záznamu přes přímou adresu.
Zatím nic neopravuj.Provoz
Chybové hlášky neprozrazují detaily
Uživatel má vidět „něco se nepovedlo“, ne obsah chyby ze serveru.
Existuje záloha dat a zkusil jsi ji obnovit
Záloha, kterou jsi nikdy nezkusil obnovit, není záloha.
Závislosti nemají známé zranitelnosti
Spusť
npm audit. U nálezů se poraď, co s tím – ne vše je nutné hned řešit.
Kdy si přizvat odborníka
Tenhle seznam má hranice. Za nimi je práce pro člověka, který za svůj úsudek ručí.
- Aplikace přijímá platby nebo pracuje s bankovními údaji.
- Ukládají se zdravotní údaje, rodná čísla nebo citlivé osobní údaje.
- Na aplikaci závisí provoz firmy a výpadek stojí peníze.
- Podepisuješ zákazníkovi smlouvu, ve které za funkčnost ručíš.
V těchhle případech nejde o to, že bys to nepostavil. Jde o to nechat si to zkontrolovat.
Kompletní bezpečnostní průchod
Před prvním veřejným spuštěním aplikace s uživateli.
Projdi celý projekt z hlediska bezpečnosti. Chovej se jako někdo,
kdo chce najít díru, ne jako kdo chce projekt pochválit.
Zaměř se na:
1. Tajemství v kódu nebo ve veřejných proměnných.
2. Místa, kde se čtou data bez ověření vlastnictví.
3. Vstupy od uživatele, které se nevalidují na serveru.
4. Chybové hlášky, které prozrazují víc, než mají.
5. Závislosti se známými zranitelnostmi.
6. Cokoliv, co by šlo zneužít, kdyby to zkoušel někdo se zlým úmyslem.
Výstup jako seznam nálezů seřazený podle závažnosti. U každého napiš,
co se může stát a jak to opravit. Zatím nic neměň.Obsah aktualizován: 21. srpna 2026