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:
- Határozza meg, hogy melyik szerver funkciókhoz való hozzáférés ellenőrzése
- 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.
- 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.
- Létrehozása és proinitsilizirovat biztonsági leírók, majd ha szükséges, hogy tartsa őket a tartós tárolás.
- Egy olyan mechanizmus, amely lehetővé teszi a rendszergazda módosíthatja a beállításait védelmet.
- 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:
- 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.
- Támogatást adni az ellenőrzés a lehetőséggel.
- Támogatást adni egy fa tárgyak a lehetőségét öröklési gyermek tárgyakat.