名前付きパイプを使用して CGI プロセスを Windows サービスに接続しようとしています。開発マシンで別のサーバーを使用してコードを正常に実行できますが、IIS では CGI プロセスで CreateFile() を呼び出すとセキュリティの問題が発生します。
Windows サービスは名前付きパイプ サーバーであるため、CGI プロセスはその名前付きパイプにクライアントとして接続しようとします。
次のコードを呼び出して、フラグ SECURITY_WORLD_SID_AUTHORITY を使用してグローバル セキュリティ記述子を作成するコードを掘り下げました。
InitializeAcl()
AddAccessAllowedAce()
SetSecurityDescriptorDacl()
しかし、私はその概念を本当に理解していません。Pipe Server CreateNamedPipe() は SECURITY_ATTRIBUTES 構造でこの ACL を使用して呼び出す必要があると想定していますが、Named Pipe クライアントはどうですか?
別のグローバル セキュリティ記述子を作成し、それで CreateFile() を呼び出す必要がありますか?
私はそれを継承しますか
SecurityAttributes.bInheritHandle = TRUE;
CreateFile() 呼び出しで Null を渡すだけですか?