Bezpečnost začíná návrhem
Spousta problémů nevzniká až při programování. Často vznikají už ve chvíli, kdy se špatně navrhne struktura aplikace, oprávnění nebo práce s daty.
Bezpečnost při vývoji
Bezpečnost pro mě není věc, která se přidává až na konci projektu. Začíná už při návrhu — stejně jako funkce, práce s daty a způsob, jakým bude celý systém fungovat v reálném provozu.
Web nebo aplikace nemusí být jen hezká. Musí být navržená tak, aby dávala smysl, chránila data uživatelů a šla bezpečně rozvíjet i za několik let.
Principy
Je výsledkem mnoha malých rozhodnutí v architektuře, validaci, oprávněních, práci s daty i samotném provozu.
Spousta problémů nevzniká až při programování. Často vznikají už ve chvíli, kdy se špatně navrhne struktura aplikace, oprávnění nebo práce s daty.
Controller nemá dělat všechno. Každá část aplikace má mít svůj úkol — Request validuje data, Policy řeší oprávnění, Service drží logiku a Model pracuje s databází.
Nikdy nespoléhám jen na to, co přijde z formuláře. Data je potřeba kontrolovat na serveru, protože uživatel nebo prohlížeč nemusí vždy poslat to, co očekáváme.
Nestačí vědět, že je uživatel přihlášený. Důležité je také ověřit, co smí opravdu vidět, upravovat nebo mazat.
U vícefiremních systémů je zásadní, aby každý zákazník viděl pouze svá data. Oddělení dat firem beru jako jeden ze základů bezpečné aplikace.
Když se při jedné akci zapisuje více věcí najednou, musí se buď provést všechno, nebo nic. Díky tomu nezůstane systém v rozbitém mezistavu.
Když je všechna logika namačkaná v Controlleru, aplikace se špatně udržuje a snadno vznikají chyby. Čistější struktura znamená bezpečnější a přehlednější vývoj.
Přemýšlím nad tím, kdo k datům přistupuje, kdo je může měnit, co se ukládá, jak se s tím pracuje a jak se systém bude chovat dlouhodobě.
Můj přístup
Při vývoji se snažím nepřeskakovat důležité základy jen proto, aby bylo hotovo rychleji. Raději věnuji čas správnému návrhu, oprávněním, validaci a práci s daty, než později opravovat problémy, kterým šlo předejít.
Bezpečnost nevnímám jako jednu konkrétní funkci. Je to způsob přemýšlení, který se promítá do architektury, databáze, formulářů, administrace, API i běžné každodenní práce na projektu.
„Bezpečnost není cíl. Je to způsob přemýšlení.“
Cookies a měření návštěvnosti
Používáme nezbytné cookies pro fungování webu. S vaším souhlasem také anonymně měříme návštěvnost, abychom mohli web dál zlepšovat. Více informací