Jak działa Inspekcja stosu?

11

Jest to zwiastun mojego drugiego, bardziej zaawansowanego pytania o Inspekcję stosu.

Inspekcja stosu to mechanizm bezpieczeństwa wprowadzony w JVM w celu obsługi kodu działającego z lokalizacji o różnych poziomach zaufania. To pytanie ma na celu znalezienie prostego opisu jego funkcjonalności. Więc:

Jak działa inspekcja stosu?

Dave Clarke
źródło

Odpowiedzi:

7

Widzieć

Z gazety:

... Algorytm kontroli stosu stosowany w obecnych systemach Java można uznać za uogólnienie następującego prostego modelu kontroli stosu :

W tym modelu jedynymi zasadami są „system” i „niezaufany”. Podobnie jedynym dostępnym przywilejem jest „pełny”. Ten model przypomina system kontroli stosu używany wewnętrznie w Netscape Navigator 3.0.

W tym modelu każda ramka stosu jest oznaczona nazwą główną („system”, jeśli ramka wykonuje kod, który jest częścią maszyny wirtualnej lub jej wbudowanych bibliotek, a poza tym „niezaufana”) i zawiera flagę uprawnień, która może być ustawiony przez klasę systemową, która decyduje się „włączyć swoje uprawnienia”, wyraźnie stwierdzając, że chce zrobić coś niebezpiecznego. Niezaufana klasa nie może ustawić swojej flagi uprawnień. Po wyjściu ramki stosu jej flaga uprawnień (jeśli istnieje) automatycznie znika.

Wszystkie procedury dotyczące wykonywania niebezpiecznej operacji, takie jak dostęp do systemu plików lub sieci, najpierw stosują algorytm kontroli stosu, aby zdecydować, czy dostęp jest dozwolony. Algorytm kontroli stosu analizuje ramki na stosie dzwoniącego w kolejności od najnowszej do najstarszej. Wyszukiwanie kończy się, umożliwiając dostęp, po znalezieniu ramki stosu z flagą uprawnień. Wyszukiwanie kończy się również, zabraniając dostępu i zgłaszając wyjątek, po znalezieniu niezaufanej ramki stosu (która nigdy nie mogłaby otrzymać flagi uprawnień). ...

Vor
źródło