Как запустить ненадежный код Ruby в безопасной песочнице?

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

input = "sweet"
output = nil
Thread.start {
   $SAFE = 4
   #... untrusted code goes here, it uses the input variable(s)
   #to calculate some result that it places in the output variable
}
#parse the output variable as a string.

Просто чтобы уточнить, я в основном использую ненадежный код в качестве функции. Я хочу предоставить некоторые входные данные, а затем разрешить запись в выходной файл. Это все, чего я действительно хочу, мне все равно, как это делается, я просто хочу использовать ненадежный код Ruby в качестве функции. Решение не должно выглядеть как код, который я написал выше, я просто использую его для иллюстрации того, что я хочу.

Теперь я могу думать о 3 способах сделать это:

Используйте конструкцию уровня $ SAFE выше.whytheluckystiff имеет плагин песочницы для рубинаЯ мог запускать каждую функцию на своей виртуальной машине, используя какое-то программное обеспечение для виртуализации ОС, такое как vmware или Xen или что-то еще.

Мне интересно, есть ли у кого-нибудь рекомендации по функциональному запуску ненадежного рубинового кода? Какой вариант вы бы порекомендовали? Как бы вы пошли об этом? Благодарю.

Ответы на вопрос(4)

Ваш ответ на вопрос