Этот вопрос в основном совпадает с Безопасно выполняемый код пользователя , но я также хочу иметь возможность запускать код пользователя на любом языке. Единственный способ сделать это:
- Пользователь выполняет код в формате, который можно запустить из командной строки
- Формат (возможно, .exe?) Отправляется на сервер
- Сервер запускает изолированную среду, такую как vm, и запускает программу внутри нее в командной строке с соответствующими аргументами
- Программа возвращается в командную строку и эта информация отправляется обратно на сервер
Однако я вижу несколько проблем с этим.
- Связь между сервером sever-> vm-> command line-> vm-> может быть медленной, и этой программе потребуетсябудет выполняться много раз
- Я не знаю, какие службы смогут с этим справиться или есть какие-либо
- Я никогда не делал подобный проект, поэтому могут быть проблемы с безопасностьюЯ не думал о
, поэтому я хотел бы получить отзывы об этом методе или альтернативных стратегиях, которые я мог бы использовать.