网页可以和本地程序用 websocket 通信吗?怎么解决安全性问题

2023-10-08 14:16:33 +08:00
 ChefIsAwesome
之前见过本地程序起一个 websocket 服务器,网页和这个服务器通信的方案。我没搞清楚要怎么解决安全性问题。
本地程序怎么识别是哪个网页发来的。网页又怎么知道连本地哪个端口,那个端口是不是目标程序。
好像必须得用个在线的服务当中间人验证下?
856 次点击
所在节点    问与答
6 条回复
JingKeWu
2023-10-08 14:22:35 +08:00
websocket 服务器 自己写的 还不知道端口?
676529483
2023-10-08 14:38:22 +08:00
本地哪有什么安全性问题,后端只监听 127.0.0.1 就行了,本质就是 ip 白名单
Corolin
2023-10-08 14:42:18 +08:00
起了 ws 服务之后 通过链接唤起浏览器 链接上带个&callback= 或者其他任意一个参数 后台处理完丢给有 websocket client 的网页 直接通过合成一个链接 就指向本地的服务器的

安全性嘛 本地启动的服务 随机一个高位可用的端口 一个特定的 url 路径 只传递给指定服务器 认证或者其他的都是在服务器上的话 理论上还是挺安全可靠的?
Kirscheis
2023-10-08 15:01:36 +08:00
安全性问题和在线服务一样的解决方案啊,在线服务都非常安全,本地比在线的更安全。

"本地程序怎么识别是哪个网页发来的。"
- 不用识别,这类程序很多都支持多客户端同时连接,只要验证 token 有效就提供一样的服务

"网页又怎么知道连本地哪个端口"
- 拉起 webview 或者客户端的时候会跟着链接,header 或者 data 一起传过去

"那个端口是不是目标程序"
- 只有目标程序能提供签名,和 SSL 防止中间人的原理是一样的。如果只在本地跑,没有恶意程序冒充抢占端口,那不用 SSL 也可以

"好像必须得用个在线的服务当中间人验证下?"
- 不需要吧应该,为啥会需要中间人
julyclyde
2023-10-09 21:08:29 +08:00
为什么写 websocket 的人其中很多都不知道 websocket 的连接建立阶段其实是 HTTP upgrade 呢?
signalas1
2023-10-10 00:39:46 +08:00
无所谓啊 访问的时候就带鉴权用的 token

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

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

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

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

© 2021 V2EX