時間(1)でPythonを使用して名前付きパイプを作成し、最終的にこのPythonプロセスが名前付きパイプに何かを書き込むとします。なぜ?なぜなら、時間(2)では、他のプロセスが名前付きパイプからデータを読み取ることが期待されるからです。
したがって、デフォルトでは名前付きパイプを介したIPCです。なぜこんなにきれいなのでしょうか?ファイルのように見えるため、ファイルを読み取ることができる他のプロセスは、他のプロセスを書き換えることなく、便利なIPCとしてこの名前付きパイプメカニズムを介して通信できます。
しかし、問題があります。時間(1)と時間(2)の間で、悪意のあるプロセスが意図されたプロセスの前に名前付きパイプで読み始めるとします。これにより、私のPythonスクリプトが意図しないプロセスにデータを送信することができます。したがって、ハイジャッカーが私の特定のリスクモデルのプロセスに書き込みを開始するかどうかは気にしません(予想プロセスの前にパイプから読み取るハイジャックにのみ興味があります)。
質問:予想プロセス以外のプロセスが予想プロセスについてIPCから読み取らないようにするメカニズムはありますか?
答え1
名前付きパイプには、他のファイルと同様にファイル権限があります。プロセスが実行されているアカウントのみがパイプからデータを読み取れるようにパイプを作成するときに権限を設定する必要があります。