Me gustaría dejar que mis usuarios creen scripts Ruby que hagan cálculos en algunos datos que residen en el servidor web y luego arrojen resultados. Los scripts se ejecutan en el servidor. ¿Hay alguna manera de hacer esto de forma segura?Ejecutando código ruby proporcionado por el usuario en un servidor web
Más específicamente, me gustaría:
- restringir los recursos de la secuencia de comandos se puede utilizar (CPU y memoria), y limitan su tiempo de ejecución
- restringir qué clases núcleo del script puede utilizar (por ejemplo cuerdas , Fixnum, flotador, matemáticas, etc.)
- dejar que el acceso a la escritura y devuelve datos
- salida de cualquier error al usuario
¿Hay alguna biblioteca o proyecto que haga lo que estoy pidiendo? Si no está en Ruby, ¿quizás algún otro idioma?
se parece a lo que estaba buscando. Gracias. – nolk
Simplemente curioso: ¿por qué un 'instance_eval' aquí en lugar de simplemente llamar a' clean_room.binding.eval (command) '? –
@Matt, #binding es privado, por lo que debe usar un poco de "foo" para obtenerlo. –