Bezpečnost při vývoji
Bezpečnost pro mě není věc, která se přidává nebo řeší až ke konci projektu. Přemýšlím nad ní už při návrhu, stejně jako nad funkcemi, vzhledem, daty a tím, jak 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.
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í.“
Používáme cookies pro vylepšení webu a měření návštěvnosti. Více informací .