如何在窗口中提供特定进程权限

问题描述:

我正在编写一些测试软件,它接收一些源代码,在服务器上编译它,执行它,从数据库转发输入,捕获输出并将其与数据库中的输入进行比较以查看如果它是正确的。问题是源代码可以是任何东西(它是用c/C++编写的,并用visual studio cl编译的),所以我需要防止某些恶意用户。如果运行时间超过一段时间,我会自动杀死这些进程,或者使用比允许的更多的内存。如何在窗口中提供特定进程权限

问题是,我可以只允许这些进程只写和从标准输入/输出流读取,并拒绝任何其他访问权限的窗口。

请原谅我的英文。

预先感谢您。

很可能作业对象可以帮助您(请参阅http://msdn.microsoft.com/en-us/library/ms684161(VS.85).aspx)。这个非常强大的功能并不为人所知。

处理作业非常简单。您可以创建一个关于CreateJobObject的作业,并设置许多不同的限制,例如时间,内存和一些限制。然后,您可以创建一个挂起标志的流程,为流程分配流程并恢复流程。然后,您可以在创建的流程和流程可创建的所有子流程树下获得完全控制权。作业功能存在,因为Windows 2000中

另一种现代的方式是用户界面特权隔离(UIPI)(见http://msdn.microsoft.com/en-us/library/bb625963.aspx)或Vista中引入使用低完整性进程的方式。请参阅http://msdn.microsoft.com/en-us/library/Bb250462#dse_stlip如何创建低完整性流程。

+0

谢谢,这真的很有帮助。我的项目最大的部分是用java编写的,因此我将尝试为Job Objects找到一些好的API,或者我将使用JNI,或者尝试使用UIPI。 非常感谢。 – Klark 2010-06-11 13:09:44