2

我正在研究实现一个系统,其中用户能够将脚本传递到我们的服务器并让它们执行。值得庆幸的是,有大量资源可用于将Python 嵌入 C#。但是,我最担心的是用户传递的脚本会访问系统功能并导致不良甚至恶意结果。主要示例是:无限制地写入服务器上的文件。

我一直在寻找一种很好的方法来完全限制脚本对我们提供给客户的框架类的访问,但我发现的大多数点击基本上都是“这是你在 C# 中嵌入脚本解释器的方式”,但从未提及任何限制访问等安全问题。诚然,我可以对脚本进行初步检查并搜索任何列入黑名单的代码,但总是有机会错过一些东西。

对执行哪种语言没有要求,最好是可以提前编译的。服务器将运行 C# 来响应请求并将一些请求委托给用户创建的代码。我只是很难找到任何限制用户代码访问的任何语言的方法。

4

1 回答 1

2

我强烈建议您使用Lua,它正是为这类事情而设计的。每个函数,无论是用户编写的还是内置的,都是表中的一个条目,因此可以很容易地限制脚本的功能。io例如,删除表是防止恶意文件系统更改的一种简单方法。

于 2013-03-03T20:07:33.100 回答