我正在研究实现一个系统,其中用户能够将脚本传递到我们的服务器并让它们执行。值得庆幸的是,有大量资源可用于将Python 嵌入 C#。但是,我最担心的是用户传递的脚本会访问系统功能并导致不良甚至恶意结果。主要示例是:无限制地写入服务器上的文件。
我一直在寻找一种很好的方法来完全限制脚本对我们提供给客户的框架类的访问,但我发现的大多数点击基本上都是“这是你在 C# 中嵌入脚本解释器的方式”,但从未提及任何限制访问等安全问题。诚然,我可以对脚本进行初步检查并搜索任何列入黑名单的代码,但总是有机会错过一些东西。
对执行哪种语言没有要求,最好是可以提前编译的。服务器将运行 C# 来响应请求并将一些请求委托给用户创建的代码。我只是很难找到任何限制用户代码访问的任何语言的方法。