Побачити
З паперу:
... Алгоритм перевірки стека, що використовується в сучасних системах Java, можна розглядати як узагальнення наступної простої моделі перевірки стека :
У цій моделі єдиними принципами є "система" та "ненадійність". Так само єдина доступна привілей - "повна". Ця модель нагадує систему перевірки стека, що використовується внутрішньо в Netscape Navigator 3.0.
У цій моделі кожен фрейм стека позначений основним ("система", якщо кадр виконує код, який є частиною віртуальної машини або його вбудованих бібліотек, і "не довірений" в іншому випадку), і містить прапор привілею, який може встановлюється системним класом, який вирішує "включити свої привілеї", прямо заявляючи, що хоче зробити щось небезпечне. Ненадійний клас не може встановити прапор привілеїв. Коли кадр стека виходить, його прапор привілеїв (якщо такий є) автоматично зникає.
Усі процедури щодо здійснення небезпечної операції, такі як доступ до файлової системи або мережі, спочатку застосовують алгоритм перевірки стека, щоб вирішити, чи доступ дозволений. Алгоритм перевірки стека шукає кадри в стеку абонента послідовно, від найновішого до найдавнішого. Пошук завершується, дозволяючи отримати доступ, після знаходження кадру стека з прапором привілею. Пошук також припиняється, забороняючи доступ та викидаючи виняток, знаходячи ненадійний фрейм стека (який ніколи не міг отримати прапор привілеїв). ...