gpt4 book ai didi

C# 在嵌入脚本解释器时限制命名空间

转载 作者:太空宇宙 更新时间:2023-11-03 11:07:43 28 4
gpt4 key购买 nike

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

我一直在寻找一种好方法来完全限制脚本对我们提供给客户的框架类的访问,但我发现的大多数命中基本上都是 "here's how you embed a script interpreter in C#"但从未提及任何安全问题,例如限制访问。不可否认,我可以对脚本进行初步检查并搜索任何 blacklisted code但总有机会错过一些东西。

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

最佳答案

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

关于C# 在嵌入脚本解释器时限制命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15190128/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com