假设在时间 (1),我使用 Python 创建一个命名管道,目标是最终此 Python 进程将向该命名管道写入一些内容。为什么?因为在时间 (2) 时,预计有另一个进程从该命名管道中读取数据。
所以,基本上,它是通过命名管道的 IPC。为什么这么整齐?因为它看起来像一个文件,所以其他只能读取文件的进程可以通过这种命名管道机制作为方便的 IPC 进行通信,而无需重写其他进程。
但有一个问题:假设在时间 (1) 和时间 (2) 之间,一个邪恶进程在该预期进程之前开始从命名管道中读取数据。这样,我的 Python 脚本最终可能会将数据发送到非预期进程。因此,我不关心劫持者是否开始写入我的特定风险模型中的进程(我只关心在预期进程之前从管道中读取的劫持)。
问题:是否有任何机制可以确保除预期进程之外没有其他进程从 IPC 中读取预期进程?
答案1
命名管道与任何其他文件一样具有文件权限。确保在创建管道时设置权限,以便只有运行进程的帐户才能从中读取数据。