繁体   English   中英

如何确定命名管道的服务器端是否是管理员?

[英]How can I tell if the server side of a named pipe is an admin?

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

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

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

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

因此,您可以检查如下:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM