以安全且受限的方式使用C#的Process类运行进程

时间:2014-06-17 04:48:43

标签: c# sandbox

我有一个WCF服务,它使用C#中提供的进程类来执行 .NET exe 文件或 JAVA .class 文件

通过启动新流程执行类文件的示例代码:

 public bool Run(string classFilePath, string[] commandLineParameters)
    {
        var process = new Process { StartInfo = this.GetProcessStartInfoForExecution(classFilePath) };

        try
        {
            process.Start();
            process.WaitForExit();
        }
        catch(Exception e)
        {
            throw new Exception("Process start caused an exception");
        }

        if (process.ExitCode != 0)
        {
            this.WriteErrorToFile(classFilePath, process.StandardError.ReadToEnd());

            return false;
        }

        return true;
    }

我已经读过 AppDomain 类可以用于在安全的环境中沙箱和运行程序集,问题是它只能用于托管代码。

所以,我的问题是,有没有办法以安全和受限的方式从C#运行进程,而不仅仅是针对.net程序集,而是对于使用Process类启动的任何进程。

安全且受限制,我的意思是限制对文件,资源的访问以及防止执行任何恶意代码。

谢谢 -

0 个答案:

没有答案