Bezpečnostní incidenty už nejsou otázkou „jestli“, ale „kdy“.
A problém většinou neleží v nedostatku funkcí .NET — ale v tom, jak s nimi týmy pracují.
S několika správnými návyky mohou být C# aplikace bezpečné už od návrhu.
Tady jsou zásady, které by měl mít každý tým pod kontrolou 👇
1️⃣ Validujte vše, co nevzniklo ve vaší aplikaci
Většina zranitelností začíná u neověřeného vstupu — formuláře, API, integrace, soubory.
V C#/.NET to znamená:
- konzistentní validace modelů
- odmítnutí nekorektního vstupu co nejdřív
- žádné SQL skládané stringem
- omezení velikosti a frekvence požadavků
Co vaše aplikace nevytvořila, je potenciálně nebezpečné.
2️⃣ Secrety nepatří do repozitářů
Hard-codované klíče nebo omylem commitnuté konfigurace patří mezi nejčastější příčiny úniků.
Používejte:
- Key Vault / Secrets Manager
- proměnné prostředí
- automatickou rotaci tajných klíčů
A nikdy nepište tokeny nebo hesla do logů — ani v debug režimu.
3️⃣ Moderní identita a skutečná autorizace
Současné aplikace potřebují víc než jen uživatelské jméno a heslo.
Lepší přístup:
- OpenID Connect / OAuth2
- centralizovaná identita (Azure AD, Auth0, IdentityServer)
- policy-based autorizace
Bezpečnost musí být v API a službách — ne v UI.
4️⃣ Šifrujte při přenosu i v úložišti
Zachycená data musí být k ničemu:
- vynucení HTTPS/TLS 1.2+
- použití standardních kryptografických knihoven
- šifrování databáze
- čištění logů a ukládání jen nezbytných dat
Mnoho úniků vzniká kvůli logům nebo zapomenutým diagnostickým datům.
5️⃣ Vyřešte „klasické“ útoky — pořád fungují
Jsou staré, protože jsou stále úspěšné:
- XSS → enkódujte výstup
- CSRF → antiforgery tokeny
- rate limiting → ochrana proti brute-force
- bezpečná serializace → vyhnout se rizikovým deserializérům
Většina problémů nepřichází z exotických exploitů, ale z ignorování základů.
6️⃣ Bezpečnost jako kontinuální proces
Bezpečnost není jednorázová fáze.
Začleňte ji do běžného procesu:
- automatizované skeny
- pravidelné aktualizace závislostí
- code review s bezpečnostním checklistem
Když se bezpečnost stane rutinou, aplikace zůstávají spolehlivé, i když se hrozby mění.
Závěr
C# a .NET nabízí vše potřebné pro tvorbu bezpečných aplikací —
ale nástroje samy o sobě nestačí.
Týmy, které pracují se zabezpečením každodenně a ne až „na konci“, vytvářejí software, kterému uživatelé můžou důvěřovat.

