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