Создайте песочницу Java на основе политики безопасности

Я должен создать среду для выполнения потенциально недоверяемого кода. Программа позволила соединяться с предварительно сконфигурированным address:port, и ничто иное (даже читает системное время). Я скомпилировал белый список класса. Я искал подобные вопросы, но нашел только шаблон, что на основе SecurityManager, какой AFAIK удерживается от использования. Кто-либо может дать мне простую выборку, как выполнить код в песочнице на основе политики безопасности и AccessController?

16
задан gordon-quad 19 May 2010 в 17:06
поделиться

1 ответ

Насколько мне известно, проверки безопасности по-прежнему выполняет SecurityManager. Но в настоящее время, похоже, он делегируется AccessController.

Сначала вам нужно включить диспетчер безопасности:

-Djava.security.manager

Если вы опустите этот аргумент, песочницы вообще не будет.

Во-вторых, вам нужно указать, где найти файл политики:

-Djava.security.policy =

Это добавит ваши разрешения к тем, которые уже определены в вашем домашнем java-файле. Исходные правила песочницы в ... / jre / lib / security / java.policy. Однако, если вы хотите, чтобы ваша политика была единственной, вам нужно использовать двойной знак «=». Таким образом, вы полностью контролируете то, что разрешено.

Например:

-Djava.security.policy ==

Я бы посоветовал вам использовать "policytool", поставляемый с Java. Это довольно просто, но помогает быстро написать файл политики с правильным синтаксисом.

Надеюсь, это поможет ...

16
ответ дан 30 November 2019 в 22:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: