¿Cómo ejecutar código Ruby no confiable dentro de una caja de arena segura?

Quiero poder ejecutar un código ruby ​​sin confianza. Quiero poder pasar variables a dicho código no confiable que puede usar. También quiero que dicho código me devuelva un resultado. Aquí hay un ejemplo conceptual de lo que estoy pensando.

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.

Solo para aclarar, básicamente estoy usando el código no confiable como una función. Quiero proporcionar sus entradas y luego permitir que escriba en la salida. Eso es todo lo que realmente quiero, no me importa cómo se haga, solo quiero la capacidad de usar código Ruby no confiable como una especie de función. La solución no tiene que parecerse en nada al código que escribí anteriormente, solo lo estoy usando para ilustrar lo que quiero.

Ahora, actualmente puedo pensar en 3 maneras de hacer esto:

Use el nivel de nivel $ SAFE arriba.Whytheluckystiff tiene un complemento de Sandbox para rubyPodría ejecutar cada función en su propia máquina virtual, usando algún tipo de software de virtualización de sistemas operativos como vmware o Xen o algo así.

Me pregunto si alguien tiene alguna recomendación para ejecutar un código Ruby no confiable de manera funcional. ¿Qué opción recomendarías? ¿Cómo lo harías? Gracias.

Respuestas a la pregunta(4)

Su respuesta a la pregunta