Як працює перевірка стека?


11

Це попередник мого іншого, більш розвиненого питання щодо перевірки стека.

Інспекція стека - це механізм захисту, запроваджений в JVM для роботи із запущеним кодом, що походить з місць, що мають різний рівень довіри. Це питання спрямоване на пошук простого опису його функціональності. Так:

Як працює перевірка стека?

Відповіді:


7

Побачити

З паперу:

... Алгоритм перевірки стека, що використовується в сучасних системах Java, можна розглядати як узагальнення наступної простої моделі перевірки стека :

У цій моделі єдиними принципами є "система" та "ненадійність". Так само єдина доступна привілей - "повна". Ця модель нагадує систему перевірки стека, що використовується внутрішньо в Netscape Navigator 3.0.

У цій моделі кожен фрейм стека позначений основним ("система", якщо кадр виконує код, який є частиною віртуальної машини або його вбудованих бібліотек, і "не довірений" в іншому випадку), і містить прапор привілею, який може встановлюється системним класом, який вирішує "включити свої привілеї", прямо заявляючи, що хоче зробити щось небезпечне. Ненадійний клас не може встановити прапор привілеїв. Коли кадр стека виходить, його прапор привілеїв (якщо такий є) автоматично зникає.

Усі процедури щодо здійснення небезпечної операції, такі як доступ до файлової системи або мережі, спочатку застосовують алгоритм перевірки стека, щоб вирішити, чи доступ дозволений. Алгоритм перевірки стека шукає кадри в стеку абонента послідовно, від найновішого до найдавнішого. Пошук завершується, дозволяючи отримати доступ, після знаходження кадру стека з прапором привілею. Пошук також припиняється, забороняючи доступ та викидаючи виняток, знаходячи ненадійний фрейм стека (який ніколи не міг отримати прапор привілеїв). ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.