我对如何使用脚本语言以沙盒方式执行简单代码块感兴趣。宿主语言/环境可以是c#/ ruby / python / java(除了c之外的任何东西)。但是脚本语言同样可能是一些模糊不清的东西,比如javascript / python / ruby / perl等。
我想要的是一种使用传统编程结构执行脚本的方法,即条件/循环/日期操作/数组等。但我不想要的是暴露诸如IO,连接到http流,数据库等的东西。
我目前正在使用python适配器查看spidermonkey,但我想知道是否还有其他选项我应该考虑。
答案 0 :(得分:2)
Lua非常容易使用沙盒代码。以下是Lua wiki的参考资料。它是一种极好的极简主义脚本语言,易于嵌入其他(C或C ++)代码中。所以你的主机将Lua嵌入到其他一些代码中(或者只是工厂安装的Lua解释器)。你的脚本语言是Lua。
如果你不知道,我相信还有其他好的解决方案,不需要你学习一门新语言。
答案 1 :(得分:1)
您可以通过Code Access Security使用.NET(VB,C#,任何语言)来执行此操作 - 将计算机上的策略设置为不允许访问您喜欢的任何Framework类。
默认情况下,策略允许源自本地计算机的代码执行任何操作;你可以设置它,这样默认情况下,代码不能调用I / O类,不能进行HTTP连接,等等。