2010-02-18 106 views
5

我对如何使用脚本语言以沙盒方式执行简单的代码块感兴趣。宿主语言/环境可以是c#/ ruby​​/python/java(除c之外的任何东西)。但脚本语言同样可能是一些晦涩难懂的东西,比如javascript/python/ruby​​/perl等。沙盒脚本

我想要的是一种用传统编程结构执行脚本的方式,例如条件/循环/日期操作/数组等。我不想暴露的东西,如IO,连接到HTTP流,数据库等

我目前正在看使用python适配器的spidermonkey,但我想知道是否有其他选项,我应该考虑。

回答

1

你可以用.NET(VB,C#,任何语言)通过Code Access Security - 在机器上设置策略,不允许访问你喜欢的任何框架类。

请参阅Setting Security Policy

默认情况下,策略允许源自本地机器的代码执行任何操作;您可以对其进行设置,以便默认情况下,代码无法调用I/O类,不能执行HTTP连接等等。

+1

在这个评论的背面,我开始看着嘘声我想要一个可扩展的语言以及一些不错的活力。我突然意识到CLR是一个很好的平台,我相信有一天C#将会像恐龙一样成为Java,但CLR将会持续相当一段时间。 – Owen 2010-02-24 00:11:54

2

Lua非常易于使用沙盒代码。以下是有关Lua wiki的参考。这是一个了不起的极简主义脚本语言,很容易嵌入到其他(C或C++)代码中。所以你的主机将被Lua嵌入到其他一些代码中(或者只是工厂安装的Lua解释器)。你的脚本语言是Lua。

如果你不知道,但我相信还有其他很好的解决方案,不需要你学习一种新的语言。