gpt4 book ai didi

c++ - IIS 下的 Windows 命名管道 ACL

转载 作者:可可西里 更新时间:2023-11-01 10:40:53 24 4
gpt4 key购买 nike

我正在尝试使用命名管道将 CGI 进程连接到我的 Windows 服务。我的代码在我的开发机器上使用另一台服务器运行良好,但在 IIS 上,当我在 CGI 进程中调用 CreateFile() 时存在安全问题。

Windows 服务是命名管道服务器,因此 CGI 进程正尝试作为客户端连接到该命名管道。

我挖掘了一些代码,通过调用以下代码创建了一个带有标志 SECURITY_WORLD_SID_AUTHORITY 的全局安全描述符:

  InitializeAcl()
AddAccessAllowedAce()
SetSecurityDescriptorDacl()

但是我不太明白这个概念。我假设必须使用 SECURITY_ATTRIBUTES 结构中的此 ACL 调用管道服务器 CreateNamedPipe(),但是命名管道客户端呢?

我是否创建另一个全局安全描述符并用它调用 CreateFile()?

我继承它了吗

 SecurityAttributes.bInheritHandle   = TRUE;

我是否只在 CreateFile() 调用中传递 Null?

最佳答案

由于管道是由服务端创建的,所以只有服务端需要指定ACL,客户端ACL使用NULL。

只有在一个进程中创建了命名管道并且该进程创建了一个新进程时才适用继承,您希望在其中派生的进程可以直接访问句柄(它不会重新打开句柄,而是获取值其他方式,例如命令行)。

您可以在 sysinternals 上使用 Process Explorer查看进程中打开的命名管道,然后查看 ACL。

关于c++ - IIS 下的 Windows 命名管道 ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/688550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com