当前位置:  开发笔记 > 编程语言 > 正文

为什么管道在Windows/unix/linux中被认为是危险的?

如何解决《为什么管道在Windows/unix/linux中被认为是危险的?》经验,为你挑选了1个好方法。

为什么管道被认为是危险的?可以采取哪些措施来避免这些安全问题?

我最感兴趣的是Windows,但如果您有其他操作系统信息,请提供.



1> ConcernedOfT..:

(假设您在提到'c'和'IPC'时谈论的是Unix命名管道.Windows命名的管道工作方式有所不同)

任何具有权限的人都可以写入命名管道,因此您必须小心权限和锁定(请参阅flock()).如果应用程序信任它从命名管道获取的输入(除非您明确地在其中构建输入验证,通常就是这种情况),然后恶意用户可以将任何所需数据写入命名管道(如果他们有权限).

此外,任何具有权限的用户都可以从管道中读取并截取来自它的数据(如果您尚未完全锁定它).然后,读取器期望的输入流中缺少数据.


但这不是归结为"有权限的人可以做坏事",这对每个操作系统功能都是如此吗?
主要原因(并且这在某种程度上也称为Windows命名管道)是管道位于公共名称空间中,而一旦建立连接,套接字就是私有的(假设TCP流本身未被劫持).
推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有