【发布时间】:2013-02-17 20:47:41
【问题描述】:
我正在研究实现一个系统,在该系统中用户能够将脚本传递到我们的服务器并让它们执行。谢天谢地,Embedding Python into C# 有很多资源。但是,我最担心的是用户传递的脚本会访问系统功能并导致不良甚至恶意结果。主要示例是:无限制地写入服务器上的文件。
我一直在寻找一种好方法来完全限制脚本对我们提供给客户的框架类的访问,但我发现的大多数命中基本上都是"here's how you embed a script interpreter in C#",但从未提及任何安全问题,例如限制访问. 诚然,我可以对脚本进行初步检查并搜索任何blacklisted code,但总有机会错过一些东西。
对于执行哪种语言没有要求,最好是可以提前编译的语言。服务器将运行 C# 来响应请求并将一些请求委托给用户创建的代码。我只是找不到任何限制用户代码访问的任何语言的方法。
【问题讨论】: