为什么管道被认为是危险的?如何避免这些安全问题?
我最感兴趣的是Windows,但如果您有其他操作系统信息,请提供。
答案 0 :(得分:16)
(假设您在提到'c'和'IPC'时谈论的是Unix命名管道.Windows命名管道的工作方式有所不同)
任何拥有权限的人都可以写入命名管道,因此您必须小心权限和锁定(请参阅flock())。如果应用程序信任它从命名管道获取的输入(除非您明确地在其中构建输入验证,通常就是这种情况),那么恶意用户可以将任何所需数据写入命名管道(如果他们有权限的话)。
此外,任何具有权限的用户都可以从管道中读取并拦截来自它的数据(如果您尚未完全锁定它)。然后,读者期望的输入流中缺少数据。