以编程方式限制外部进程资源

本文关键字:进程 资源 外部 编程 方式限 | 更新日期: 2023-09-27 18:19:19

我正在开发一个。net应用程序,它有第三方插件。这些插件以EXE文件的形式出现,它与应用程序api和数据一起工作。

出于安全考虑,当它们通过我的应用程序启动时,我希望能够"沙箱"它们。特别是,最重要的是能够限制对文件系统的驱动器或目录的访问。

有没有办法通过AppDomain做到这一点?或者以其他方式?

还有一些外部插件可能不会在托管代码中编写,因为我的软件将api暴露给COM,但有可能放弃非。net插件支持。对我们来说,更重要的是对这些插件进行沙盒处理。

以编程方式限制外部进程资源

如果您需要为一个(不一定)完全基于。net的进程执行此操作,则AppDomain s可能不足以完成此任务。

我会考虑在Windows Job Object中运行处理。这可以让你设置一个沙盒来限制进程对CPU和内存之类的东西的使用。

对文件系统的访问已经基于使用自由访问控制列表(dacl)的用户帐户进行了处理。为了限制对文件系统的几个特定部分的访问,需要设置一个帐户来运行沙盒作业,并为允许它们使用的文件系统部分设置允许访问的ace。如果您需要支持多个用户运行沙盒作业,那么您可能需要为沙盒作业设置一个用户组,并将ace与组相关联,而不是与单个用户相关联。