Článek: AN0001561Aktualizováno::
Zde jsou popsány bezpečnostní principy, které by měly být vzaty v úvahu při tvorbě nové funkcionality/modelu v systému ObjectGears.
Rozšíření stávajícího modelu
Při vývoji nových funkcionalit v prostředí ObjectGears je vhodné zvážit, zda vytvořit nový model/aplikaci nebo rozšířit stávající model/aplikaci. Důvodem pro zahrnutí do stávajícího modelu může být logická souvislost nebo to, že nová funkcionalita bude využívat existující objekty v modelu.
Omezení: Přístup na modifikaci objektů vytvořených v rámci nové funkčnosti a objektů tvořících existující model má stejný okruh uživatelů. Pokud chcete, aby novou funkcionalitu dále modifikovali jiní uživatelé než původní model, zvolte raději vytvoření nového modelu. S původním modelem ho můžete propojit pomocí povolení tříd pro jiný model (viz detail modelu).
Vytvoření nového modelu v ObjectGears instanci
Pokud chcete oddělit uživatele spravující jeden model od uživatelů spravujících druhý model, zvolte nový model. Tím zajistíte, že uživatelé, vytvářející jednu funkcionalitu, nemohou modifikovat i jinou funkcionalitu. Pokud se chcete ve třídách jednoho modelu odkázat na třídy jiného modelu, můžete jednotlivé třídy z jednoho modelu povolit pro odkazování ve třídách jiného konkrétního modelu (viz detail modelu).
Omezení: Oba modely sdílejí jednu instanci ObjectGears a mají tedy shodná základní nastavení (např. povolení volání webových služeb, omezení pro hromadné změny, nastavení autentizace, způsob přidělování rolí uživatelům atd.) a shodný okruh administrátorů. Pokud potřebujete pro nový model jiná nastavení nebo chcete oddělit okruh uživatelů se základní vestavěnou rolí Administrátor, vytvořte na webovém serveru novou instanci aplikace ObjectGears a použijte novou databázi.
Další instance ObjectGears na serveru
Další instance ObjecGears představuje možnost zvláštního nastavení globálních parametrů aplikace a rozlišení uživatelů s rolí Administrátor. V jiné instanci ObjectGears je možné definovat jiné role a jiné uživatele. Instance ObjectGears spolu mohou komunikovat jako dva odlišné systémy pomocí webových služeb.
Omezení: Obě instance se nacházejí na stejném serveru. Administrátor serveru nebo uživatel mající přístup na souborový systém mohou změnit soubor web.config a např. nastavit sebe samotného jako Administrátora aplikace. V případě zvýšeného požadavku na bezpečnost nové funkcionality a oddělení uživatelů, kteří mohou ovlivnit bezpečnost aplikace přes soubor web.config, umístěte instanci ObjectGears na jiný server.
Jiný server pro ObjectGears
Jiný server ObjectGears představuje vysokou autonomii aplikace z pohledu bezpečnosti. Instance ObjectGears umístěné na jiných serverech spolu mohou komunikovat jako dva odlišné systémy pomocí webových služeb.
Při použití jednoho serveru pro každou instanci systému ObjectGears nevzniká problém s windows službou jako v předchozím případě.
Databáze
Podobné úvahy je třeba provést i při posuzování bezpečnosti databáze a okruhu uživatelů, kteří k ní mohou získat přístup.
Při více modelech v jedné instanci systému ObjectGears mohou vznikat následující problémy, které je třeba zvážit z pohledu bezpečnosti. Všechny tyto bezpečnostní problémy můžete vyřešit pomocí oddělených instancí pro jednotlivé modely nebo důslednou kontrolou modelu (skripty, moduly, dotazy). Přidělujte oprávnění IT vlastník modelu jen prověřeným a spolehlivým uživatelům. Provádějte kontrolu modelů, které si instalujete do systému ObjectGears, zda v sobě neobsahují nebezpečný kód.
Jako poslední krok ke zvýšení bezpečnosti proveďte školení uživatelů a IT správců na bezpečnostní rizika.
Dotazy na cizí data
V definici dotazu můžete použít libovolnou konstrukci příkazu SELECT nebo použít uloženou proceduru. Systém ObjectGears neprovádí kontrolu, na jaká data se budete dotazovat, a tak je možné načíst data i z jiného modelu. Pokud tedy máte model, který obsahuje citlivá data, pak jej umístěte do nové instance systému ObjectGears.
Pokud tento model bude potřebovat data z i jiných modelů, můžete tato data synchronizovat pomocí exportů a importů nebo databáze jednosměrně propojit pomocí databázového linku a data tak přenášet přes databázi.
Skripty
Ve skriptech vzniká podobný problém jako u dotazů. ObjectGears nekontroluje, co skript provádí. Ze skriptu lze zavolat uloženou proceduru nebo zadat SQL příkaz do databáze, zavolat proceduru z modulu apod.
Moduly
Modul je v podstatě zkompilovaný kód v jazyce .NET. Buďte obezřetní při instalaci modulů dodávaných třetí stranou. Ani moduly se neomezují na jeden model.