如何从托管代码沙箱调用外部非托管应用程序?

时间:2012-04-10 11:13:30

标签: c# asp.net .net-4.0 sandbox

我们正在为ASP.NET中的XSLT处理器开发一个在线测试应用程序,但是,我有点担心如何限制我们系统的漏洞。 是否可以使用.NET沙箱第三方非托管或托管应用程序?它应该:

  • 不允许以任何方式或漏洞启动任何其他流程;
  • 无权访问系统上的其他现有流程;
  • 在需要太多处理能力或内存时被杀死;
  • 使用托管和非托管外部应用程序;
  • 不应该能够访问系统调用

某些应用程序具有托管API,但这还不够,因为我需要在与ASP.NET相同的处理空间中运行它,并存在所有潜在风险(堆栈溢出,内存异常,缓冲区溢出)。我不知道.NET是否提供了非托管应用程序的沙盒。

我们目前在具有特定亲和力的控制台中执行外部程序并对其进行监控,但这不是一种正确甚至是非常安全的方法。

1 个答案:

答案 0 :(得分:0)

您可以在AppDomain中执行托管代码,可以对其进行配置以提供某种程度的保护,但是只要您允许非托管代码运行,它几乎可以访问其运行的用户所拥有的所有内容。进入。 我很确定你可以防止在AppDomain中执行非托管/不安全的代码。