我们正在为 ASP.NET 中的 XSLT 处理器开发一个在线测试应用程序,但是,我有点担心如何限制我们系统的漏洞。.NET 是否可以沙箱第三方非托管或托管应用程序?它应该:
- 不允许以任何方式或漏洞启动任何其他进程;
- 无法访问系统上的其他现有进程;
- 当需要太多的处理能力或内存时被杀死;
- 使用托管和非托管外部应用程序;
- 应该不能访问系统调用
一些应用程序具有托管 API,但这还不够,因为我需要在与 ASP.NET 相同的处理空间中运行它,并且存在所有潜在风险(堆栈溢出、内存异常、缓冲区溢出)。我不知道 .NET 是否提供非托管应用程序的沙盒。
我们目前在具有特定关联性的控制台中执行外部程序并对其进行监视,但这感觉不是正确的,甚至不是非常安全的方法。