我想在应用程序中提供最终用户脚本(可运行服务器端)。我一直在阅读,并发现沙盒比我想象的更为棘手。最终用户脚本
我真的不在乎什么语言是。 LUA,Python,JavaScript,我可以阅读任何东西。
在一个不受信任的脚本中运行一个函数,传递一些信息并获得更多信息有多难?我读过JVM安全管理器是一个不行,Python几乎不可用,但我对这个主题知之甚少,不能真正判断源。例如,我如何解释JS中的一个函数,该函数需要一个JSON(从Java或Python甚至是node.js)并获取返回的JSON?
我想避免自己实现一个pythonish i-just-know-it-will-suck语言解释器。
JavaScript似乎是最安全的选择。它基本上是为这个确切的目的而设计的。 – 2012-04-13 13:59:12
至于沙盒Python,有[一些建议](http://wiki.python.org/moin/Asking%20for%20Help/How%20can%20I%20run%20an%20untrusted%20Python%20script%20safely%20 %28i.e.%20Sandbox%29)。 – 2012-04-13 14:01:06
@Lattyware:保护CPython的建议基本上没用,恕我直言。他们推荐chrooting(这是不安全的)和虚拟化(这是昂贵的)。 – 2012-04-13 14:02:51