2011-07-14 15 views
7

Estamos trabajando en un producto que tiene un requisito similar al de Tropo (consulte https://github.com/tropo/tropo-samples/tree/master/ruby), donde el usuario puede escribir un script de ruby ​​que puede acceder a algunas funciones y variables que se pasan. Sin embargo, nos gustaría evitar que el usuario tenga acceso a llamadas globales eliminando a todos los usuarios o terminando el programa. ¿Hay alguna manera de lograr esto con eval?¿Hay una forma segura de ejecutar eval en Ruby?

+0

, debe anular eval y pasar solo los comandos de confianza – apneadiving

+0

posible duplicar a: http://stackoverflow.com/questions/406833/language-in-a -sandbox-in-rails – fyr

Respuesta

0

conjunto de parámetros seguro $? Eso debería garantizar que no evalúe las cadenas que no son de confianza, de todos modos ...

0

Ruby proporciona un modelo de seguridad basado en objetos "contaminados".

Es posible que desee check that. De todos modos, tenga en cuenta que crear un DSL es más seguro (¡y más divertido!) Que eval

Cuestiones relacionadas