Запускать программы Java из PHP в песочнице - PullRequest
2 голосов
/ 02 августа 2011

У меня небольшой вопрос: мы должны запускать программы на Java, и части кода будут загружаться пользователями.Итак, я хочу знать, как лучше всего их запустить?Я знаю 2 возможных способа,

  1. exec("javac Usercode.class"), а затем запускаю все это с помощью exec("java Main"), но я попробовал это с exec(), и оно не работает.может потому что http не рут?Но я не знаю точно, почему.
  2. http://php -java-bridge.sourceforge.net / pjb / ?

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

И еще вопрос, как я могу запустить эти программы в песочнице.у нас есть сервер Debian, и поэтому нет проблем с выполнением команды в течение ограниченного времени, но есть ли способ запустить весь код в песочнице?

1 Ответ

2 голосов
/ 02 августа 2011

Идеи для песочницы:

  • Запускать в chroot, используя, например, команду Debian schroot.Защищает от доступа к файлам за пределами chroot, но не от таких действий, как открытие сокетов и т. Д.

  • Каждый пользователь имеет свое собственное имя пользователя в Linux, которое он проверяет.Затем команды будут выполняться под соответствующим именем пользователя (например, с помощью sudo или исполняемого файла set-uid).

  • Поддерживать пул виртуальных серверов - дорого и сложно, но обеспечивает лучшую изоляцию.

...