使用 socket 做进程间通信的架构师属于什么水平

86 天前
 blackstack
我们是做安全产品的厂商,最近一个客户端程序,有 Androd 和 Windows 两个平台。

架构师原先是做 Java 的,负责 Android 端的开发,我负责 Windows 端开发。

因为需要和其他程序通信,所以他选定的是 socket ,用于本地进程的进程间通信,这里没有任何跨操作系统和跨设备的通讯需求。

我在 Windows 端用的是命名管道,现在强压我要改成 Socket 。

改 Socket 是没什么难度,但是被强制往自己的代码里糊屎非常难受。

Socket 他还没做任何权限认证,也就是本地的任何线程,不管是其他合法进程还是木马病毒,都可以给它的 Socket 端口发消息,只要格式正确它都会执行。

请问下,IPC 用 Socket 的多吗?是纯属他太菜,还是我水平不足??
14359 次点击
所在节点    程序员
137 条回复
blackstack
85 天前
@jorneyr 主要是窒息的操作太多了,比如说 get 请求不安全,要求客户端下载更新包的时候只能用 post 请求…

然后不知道灰度发布是什么,设置的更新接口不能区分渠道,后面会有几万个设备同时运行,他选择让几万个设备一起更新到最新版。

接口也没有任何向下兼容的设计,万一部分设备没有更新到最新版,就等着让它们挂掉…
blackstack
85 天前
@dajj 感谢,你说的很有道理,随他吧。
blackstack
85 天前
@lonelyparasol 现在他的方案就是 socket 裸奔,没有任何身份认证。

我这边简单做了一下请求进程的认证,现在他要我改成跟他一样裸奔的方式,实现上没什么难度,就是非常难受。
blackstack
85 天前
@raviscioniemeche 我也不是专业搞 windows 客户端的开发,实际上做的是.net 后端,管道通信一般不用在不同软件之间的进程通信吗?
dododada
85 天前
你们的产品发布之前不过安全检测么?找个红队干他一下。

我认识个家伙,做加固的,新来的阿里领导看他不顺眼要搞他,但是这个领导不懂安全,就找了个阿里安全的搞了他一把,但是没搞动。。。后来就不找他麻烦了,这事儿比较搞笑。

你这个呢,方案的确认和实施,要有邮件往来留存的,至少要抄送到相关干系人。邮件的语气不要客气,正式,每次的技术讨论要有会议纪要,各方抄送。

目的不是甩锅,而是防止背锅。很多事儿,跟技术没关系。
valord577
85 天前
类似于 6 楼说的 一般熟悉网络技术栈的开发者会优先使用 socket 似于网络通信的 api 方便在 unix domain socket 和 tcp/udp 互相移植 这个和 windows 或者 unix-like 等平台无关 属于是习惯或者熟悉之类的。这种非业务层面的技术沟通 如果后期他也会维护你的代码 你俩就好好商量。如果他不参与你的代码维护 建议看着办 [手动狗头]
hxndg
85 天前
使用 unix domain socket ,就是上面有人说的 pf_unix ,权限充足的情况下在 linux 上是可以获取对端执行文件信息包括路径的。
从你的描述来看,你做了简单的认证,有多简单没描述,你们的安全基线或者说安全的可证明性前提也没有,所以我并不觉得能够证明是架构的水平不足。
adoal
85 天前
“我林家满门忠烈,你懂个屁的 Windows”
mainjzb
85 天前
发现 windows 也有 pf_unix
要求 Windows build 17061

https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
macha
85 天前
windows 上用有名管道即可,用 socket 容易被别人攻击。
我看描述是在跨平台和安全性上的抉择,如果公司比较闲大家讨论讨论还是能增长不少见识的。
如果比较卷的话,谁负责就听谁的呗。
kaminic
85 天前
做两个 flutter 进程之间的通信,命名管道确实在 flutter 上封装的不完善,最后还是选择用 socket 。
不过只是作为传输层,后期有需求在换掉
blackstack
85 天前
@hxndg Android 目前没有做任何认证,只是绑定 127.0.0.1 ,我这边的 windows 是检查了下进程的路径,看下是不是合法的进程发起的通信。
blackstack
85 天前
@valord577 问题就是他只负责提要求,然后遇到的问题让我自己想办法……
blackstack
85 天前
@dododada 基本上需求的变更都是口述,没有留下会议纪要和痕迹。

有些甚至是他自己和后端拉个会,自己决定自己改,接口变更,我都不知道。

等我下次改代码,发现接口变了,只能被迫跟着改。
m1nm13
85 天前
说实话我对 pipe 或者 Name pipe 印象很差,可能作为入门必学的 ipc 方案,很多初级工程师用的关系,经常出问题.
换我我用 socket,当然我只做 linux 下的开发就是了
vipfts
85 天前
拉磨的驴嫌弃鞭子不够瑟琴🥵
zoharSoul
85 天前
挺多的
HFX3389
85 天前
@blackstack #41 不懂灰度发布在某种程度上算蛮正常的 ,毕竟前段时间的全球蓝屏事件就是 CrowdStrike 的软件全局推送了有问题了 sys 文件,国外大厂都不知道咧~
DefoliationM
85 天前
没看懂您这描述,进程间通信是谁跟谁通信,Android 和你 Windows 通信吗?
blackstack
85 天前
@vipfts 哈哈,有道理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1075187

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX