Кто-нибудь знает, как можно реализовать подход к доступу к классу белого списка, аналогичный Google App Engine?

Я пишу контейнерную структуру, которая может динамически развертывать файл Jar, содержащий разработанные пользователем классы в контейнере, а затем с помощью веб-интерфейса выполнять определенные классы из файла Jar.

Все остальное хорошо настроено, включая проверки. Однако требование состоит в том, чтобы разрешать доступ только к определенным классам JDK и других библиотек из класса, разработанного пользователем. Очевидно, это связано с тем, что контейнеру потребуется гарантия того, что кто-то (преднамеренно или нет) в конечном итоге запустит фрагмент кода Java, который приведет к «плохому» поведению.

Вообще, я нахожу материалы в Google почти на все темы. В данном случае я просто не мог :(


person Kartik    schedule 03.03.2010    source источник


Ответы (2)


см. Могу ли я запретить доступ к класс jvm, настроив файл java.policy?

он предлагает использовать собственный загрузчик классов

person Stefan De Boey    schedule 03.03.2010

Обратите внимание, что собственного загрузчика классов недостаточно против злоумышленника — он может получить доступ к родительскому загрузчику классов и загрузить через него классы с ограниченным доступом. В дополнение к пользовательскому загрузчику классов вы должны установить менеджер безопасности и отозвать getClassLoader разрешение (и, возможно, еще какие-то разрешения).

person axtavt    schedule 03.03.2010