【问题标题】:Scripting Language in a Sandbox for a C#/.NET ApplicationC#/.NET 应用程序沙盒中的脚本语言
【发布时间】:2010-10-08 12:57:09
【问题描述】:

[这个问题类似于this one,但我也对沙盒的可能性感兴趣。]

我正在考虑在我的 C#/.NET 应用程序中嵌入一种脚本语言,然后将我的一些应用程序的 API 暴露给脚本。这似乎有多种不错的选择(Lua、Boo、IronPython 等),但是是否有简单的选择可以限制使用脚本语言的内置函数?例如,我不希望脚本能够执行 I/O,除非通过我明确公开的 API,因此不能打印到控制台、打开文件等。这些脚本语言中的任何一种都提供了一种简单的方法吗?这个?

【问题讨论】:

  • 不确定您需要多少保护,但不要忘记沙盒可能还需要涵盖 DOS 攻击 - 无限循环等。

标签: c# embedded scripting-language


【解决方案1】:

我自己在 Windows 上使用过 Powershell 作为脚本语言,发现它非常有用,如果您熟悉 .NET,那就更容易了。

下载两个page reference document here,这就是您上手所需的全部内容。

但是是的,您可以使用 .NET System.IO 命名空间通过 Powershell 执行 IO 操作

同样的帖子#this link

【讨论】:

    【解决方案2】:

    您可以将脚本加载到不同的 AppDomain 并控制第二个 AppDomain 的权限。

    此链接应该可以帮助您入门:
    http://blogs.msdn.com/shawnfa/archive/2005/08/08/449050.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 2013-04-13
      • 1970-01-01
      相关资源
      最近更新 更多