由提升的进程启动的进程本身是否被提升?

wil*_*ill 6 windows uac

我有一个程序,可以在用户执行某些操作时启动浏览器窗口。我的程序需要管理员访问权限(即必须通过“以管理员身份运行”启动或在 Vista 或 Win7 的清单文件中将 requestsElevationLevel 设置为 requireAdministrator)。

担心浏览器会继承父进程的提升级别;也就是说,我担心浏览器也会以管理员权限启动。这样对吗?如果是这样,有什么办法可以防止这种情况发生吗?

jri*_*sta 7

UAC 可能是一个相当复杂的概念。一般来说,子进程从父进程继承其访问令牌。但是,只有在两个进程都具有相同的情况下才会发生这种情况integrity level

每个需要管理员访问令牌的应用程序都必须提示管理员同意。一个例外是父进程和子进程之间存在的关系。子进程从父进程继承用户访问令牌。但是,父进程和子进程必须具有相同的完整性级别。

完整性级别取决于多种因素,但一般而言,Web 浏览器是一个low integrity应用程序,如果它尝试执行任何需要更高级别权限的操作,则可能需要额外的 UAC 提示:

Windows 7 通过标记其完整性级别来保护进程。完整性级别是信任的度量。“高”完整性应用程序执行修改系统数据的任务,例如磁盘分区应用程序,而“低”完整性应用程序执行可能危及操作系统的任务,例如 Web 浏览器。具有较低完整性级别的应用程序无法修改具有较高完整性级别的应用程序中的数据。

如果您想了解有关 UAC 的更多信息,以下文章是很好的资源: