Egy példa a magán objektum védelem Delphi


Példa a Private Object Security Delphi

Példa a Private Object Security Delphi

Amikor létrehoz szerver alapú alkalmazások gyakran felmerül a kérdés, differenciálódását hozzáférés a különböző felhasználói csoportok a funkciókat az alkalmazás. Ha a szerver fut a rendszer, amely saját végrehajtását hozzáférés kontorlya (adatbázis szerver, fájlrendszer, stb), a megoldás nyilvánvaló -, hogy elmozdulás ezt a feladatot a célrendszer is. Azonban néhány sluchaeh ez a módszer nem alkalmazható - akár a célrendszer nem rendelkezik saját mechanizmussal, vagy szükség van, hogy végre differenciálás algoritmus eltér a meglévőt. Ebben az esetben, és a nagy, a programozó két lehetőség van:

  • kiteljesedéséhez önvédelmi mechanizmus
  • használja a mechanizmus által biztosított Windows „Private Object Security” operációs rendszer

Véleményem A második lehetőség a következő fontos előnye van:

  • Ő végre egy csapat szakember ezen a területen nagyon finom
  • Kód végrehajtása tesztelt egy nagy számú felhasználó, és az azonosított hibák azonnal megszüntette a fejlesztőcsapat, azaz anélkül, hogy nashnego részvételt.
  • Szisztematikus mechanizmus rendkívül rugalmas, könnyen kezelhető, és ami a legfontosabb, ismert rendszergazdák.

Ez az út lesz szó ebben a cikkben.

Mérföldkövek

Ne félj :) Sőt, ahogy ez nem olyan nagy, és a kódot írt egyszer, újra felhasználhatóak lesznek.

Az egész folyamat végrehajtásának alapuló védelem „Private Object Security” egyértelműen osztva több teljesen különálló szakaszból áll, és ez, véleményem szerint, a hozzáadott plusz, mert az ilyen szigetelés jelentősen csökkenti a valószínűségét a „kereszt” hibákat. Ezek a lépések a következők:

  1. Határozza meg, hogy melyik szerver funkciókhoz való hozzáférés ellenőrzése
  2. Alapján az előző fázis meghatározni a jog, amely hozzáférést biztosít bizonyos funkciók vagy csoportok, és gondoskodik azok egy sor állandók.
  3. Határozza meg, milyen konkrét te és, adott esetben, a standard jogok és azok kombinációja találkozik az alapvető jogok GENERIC_READ, GENERIC_WRITE, GENERIC_EXECUTE és GENERIC_ALL.
  4. Létrehozása és proinitsilizirovat biztonsági leírók, majd ha szükséges, hogy tartsa őket a tartós tárolás.
  5. Egy olyan mechanizmus, amely lehetővé teszi a rendszergazda módosíthatja a beállításait védelmet.
  6. Mert minden egyes hívása a védett kliens funkció ellenőrzi, hogy az ügyfél köteles hívja őt egy sor jogokat.

Most van itt az ideje, hogy minden egyes szakaszában külön-külön. Mi megcsináljuk, a kód alapján csatlakozik a cikket példa.

Megjegyzés: láthatóságának növelése a kódot idézetek itt közzétett teljesen kimaradt az összes hibakezelés. A valóságban természetesen nem tudja megtenni, és a mellékelt példa egy ilyen feldolgozás jelen van.

Első lépés. Mit fogunk védeni?

Például, a végrehajtás a cikkben azt választották elegendő, véleményem szerint, egy absztrakt objektum. Abraktnost úgy tűnik számomra, hogy ez egy nagyon fontos paraméter bizonyítani pontosan az általános elveket a rendszer, anélkül, hogy kötve semmilyen konkrét feltételeket.

Így fogjuk védeni a sor a leggyakoribb szöveges karakterláncot. A szerver tárolja ezt a listát, hogy hozzanak egy biztonsági leíró a lemezen, betöltéséhez indításkor, és mentse a befejezése munkájuk. Ahhoz, hogy ezt a szervereknek az ügyfeleknek következő funkciókat:

  • Előállítása sorok.
  • Reading egy adott vonalon az index.
  • Felülírja a meglévő vonal.
  • Egy új sort.
  • Törlése egy sorban.

Ezen túlmenően, az adminisztrációs kiszolgáló az alábbi funkciókat biztosítja:

  • Reading a meglévő biztonsági beállításokat.
  • A biztonsági beállítások módosításához.

És itt a kérdés: „mit kell megvédeni?” Azt mondjuk - „Mindent!”

Második lépés. Mi határozza meg a jogokat.

Tehát, a védett funkciók van. Most, ezen az alapon határozzuk meg egy sor jogi dolgozó ezeket a funkciókat:

Paraméterben PrivilegeSet függvény visszatér a beállított jogok, hogy megvizsgálta annak eldöntéséhez, hogy a hozzáférés engedélyezése. Paraméterben GrantedAccess függvény azt mutatja meg, hogy melyek a kért jogok egy aktuális ügyfél. A paraméter AccessStatus kap teljes ellenőrzés eredménye - akkor szabad-e vagy sem, hogy végre minden kért intézkedéseket.

Néhány szó a példa

Csatolva a cikk tartalmaz egy példát egy csoportja három projekt:

  • AccCtrlSvc.dpr kiszolgáló (mappa Server)
  • AcsClient.dpr kliens (Client mappában)
  • Vezérlőpult alkalmazás AcsCntl.dpr (CPL mappa)

Ezeken az archív is DCU (a DCU-fájl) mappát, BIN (itt esik ipolnyaemye modulok), Shared (itt vannak a modulok, amelyek nem szerepelnek a projektben, de használni) és MsgLibrary, amely egy külön projekt AcsMsg.dpr, csak melynek célja -, hogy egy tartályba üzenetet használt táblák a naplózó szerver tevékenységét. Meg kell jegyezni, hogy tartalmazza az üzenet táblázatra valószínűleg a hibakeresés a szerveren, és nem tájékoztatja a rendszergazda, mint amilyennek lennie kellene a gyakorlatban. Ez azzal magyarázható, célja a szerver - használható tankönyv.

Az applet már mondtam, elég, ami a kliens beszélni általában, akkor nincs semmi, ott túlságosan is könnyű. De a szerver alig van mondanivalója megéri.

A szerver úgy van beállítva, mint szolgáltatás. Amikor telepíti hozza az információt a rendszerleíró adatbázisban, akkor törli azt, amikor eltávolítja. Amikor először kezdi el a szerver létrehozza ACService.dat fájl a könyvtárban „Application Data” localsystem felhasználó. Ha eltávolítja ezt a fájlt is törlésre kerül. A fájl szerver tárolja a titkosított biztonsági leíró duplikált objektumok, és az adatokat a védett objektum.

Ennek közlekedés kiszolgáló named pipe. A választás oka az, hogy az egyszerűség a végrehajtás együtt könnyű kliens-szerver megszemélyesítés. Különben is, én már kész végrehajtásának közlekedés. Annak érdekében azonban, hogy csökkentsék nem kapcsolódik a témához a cikk-kód és a szállítási kódot átesett egy nagyon komoly veszteség. Az első helyen, „kés alá” kapott minden kapcsolódó teljesítmény-optimalizálás. Annak érdekében, hogy korlátozza azt az egyszerűsített protokoll és csökken a merev rendszer „kérdés-válasz”. Mindez megnehezíti az szállítására kis használni valós projektek, de ez elég alkalmas kiindulási pontként önmegvalósítási Ön által az ilyen járművek.

Ha érdekli az anyagi ebben a cikkben, akkor közvetlen jelentését szélesíteni és mélyíteni ismerik a témát. Céljára képzés, tudtam nyújtunk megoldani a következő problémákat:

  1. Adjuk hozzá a képessége, hogy új objektumok létrehozásához ügyfél, hogy a szerver támogatja a több objektumot különböző beállításokat védelmet.
  2. Támogatást adni az ellenőrzés a lehetőséggel.
  3. Támogatást adni egy fa tárgyak a lehetőségét öröklési gyermek tárgyakat.