Как ограничить ресурсы программы + права в JVM / OSGi? - PullRequest
1 голос
/ 18 ноября 2009

Я хочу создать веб-сайт, на котором люди могли бы решать задачи программирования и в конечном итоге загрузить свое решение (на любом языке JVM), чтобы проверить его и поделиться им с другими.

Я подумал, OSGi (изучая его прямо сейчас) может быть хорошим инструментом для решения этой задачи (не так ли?). Но, очевидно, я немного беспокоюсь о том, чтобы позволить другим людям выполнять свой код на моем хосте (кстати, решение на основе ввода / вывода не является альтернативой).

Итак, я решил, что мне нужно выяснить

a) как разрешить / ограничить определенные функции Java (например, запустить поток, отправить письмо, написать файл и т. Д.)

и

b) как ограничить ресурсы ЦП / ОЗУ программы / пакета , чтобы никто не мог отключить хост, например, с помощью бесконечного цикла.

Есть предложения?

1 Ответ

2 голосов
/ 18 ноября 2009

б) Я думаю, что самым безопасным решением было бы создание выделенных JVM для каждого решения, представленного пользователем. Таким образом, у вас есть все инструменты вашей операционной системы.

a) Функциональность Java может быть ограничена с помощью Разрешения . Я никогда не пытался сделать что-то сложное с этим, но это, конечно, не тривиально, чтобы сделать твердую политику для стороннего вклада. Возможно, Google Appengine SDK может помочь. Я подозреваю, что он использует разрешения, чтобы имитировать поведение Appengine локально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...