Задать вопрос
@synapse_people

Как реализовать ограничения для потоков?

Есть сервис, задумка в том, чтобы пользователи могли расширять его функциональность при помощи JS. Для этого был выбран движек v8 от eclipse. Вопрос простой - как ограничить пользователя от выполнения опасных кодов, например while(true);?
V8 работает для каждого юзера под своим потоком.
А также, как можно удостоверится, что пользователь не положит JVM тяжелыми переменными (например - запишет генеренный кусок данных размером 144 гб в переменную и привет OOM)?
P.s. помимо JS еще будет lua4j, так что решение нужно на уровне потоков, чтобы если в java повторить те же действия(например, беск цикл), то чтобы ограничение тоже срабатывало.....
  • Вопрос задан
  • 82 просмотра
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Давным давно с этим разбирался, не знаю, как по памяти, а вот по запросам к разным ресурсам ограничить точно можно, это делается через класс SecurityManager. В рамках него можно создавать свои домены безопасности. Я так делал, когда запускал сторнние скрипты.
Что касается времени выполнения, то просто срубайте тред, полсе например 10 секунд работы.
Во всяком случае вам сюда https://docs.oracle.com/javase/8/docs/technotes/gu...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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