2

我正在尝试在 Windows XP SP2+ 上使用命名管道。管道服务器将是一项服务,以某种管理员/系统级帐户的身份运行。管道客户端可以是任何用户,可能是访客,也可能是管理员。就我而言,我可以让访客帐户成功地与以管理员身份运行的服务进行通信。

在我开始在我的客户端代码中使用管道之前,我想验证管道的另一端是否真正归管理员/系统所有。

我发现了 GetSecurityInfo 函数,我认为我应该能够将它用作解决方案的一部分。但是,我不知道如何从 SID 到“是管理员”检查。

4

1 回答 1

1

由管理帐户(包括系统帐户)创建的所有对象的默认所有者是众所周知的管理员组,您不能将您创建的对象的所有权分配给没有管理权限的其他人。

所以你可以检查如下:

确保在打开管道时(使用CreateFile)传递 SECURITY_IDENTIFICATION 标志以确保潜在的恶意服务器无法冒充您。

于 2012-10-22T20:47:40.877 回答