并没有在官网登陆我的账号,也不是 Chrome 提示想要打开 idea 那种调用,这是怎么知道我本机安装的什么版本,并能通知 ide 进行安装?
1
wysnylc 2020-05-09 11:29:38 +08:00 5
没用过 QQ 的 web 加群还是没用过 tg 的加群?
|
3
RubyJack 2020-05-09 11:33:38 +08:00
url protocol
|
4
Ultraman 2020-05-09 11:34:19 +08:00 via Android
用 telegram 吗?
用的话点一下这里 https://t.me/nCoV2019 |
5
Ziya 2020-05-09 11:34:49 +08:00
直接搜索:URL Schemes
了解更多 |
6
wysnylc 2020-05-09 11:42:39 +08:00
@t298 #2 他的问题和 QQ 通过 web 加群还有 tg 加群是一样的,注册表注册然后通过 url 拉起本地注册的客户端进行交互
|
8
also24 2020-05-09 11:53:32 +08:00 23
@wysnylc #1
@RubyJack #3 @Ultraman #4 @Ziya #5 你们应该仔细看一下楼主的帖子内容的,楼主已经专门讲了 『也不是 Chrome 提示想要打开 idea 那种调用』,说明并不是 URL Schemes 方式。 我去 https://plugins.jetbrains.com/ 看了下,实际上那个页面是通过请求本地的 WebServer 传递的消息。 也就是 IDE 其实一直开着一个 WebServer 来接收外部指令,前端页面只是在请求这个接口而已。 这是具体的请求: https://i.loli.net/2020/05/09/LbKEMOmHpXRlFPD.png 可以在源码中看到一些请求相关的内容: https://i.loli.net/2020/05/09/o5q3aZnjudJIiVk.png |
10
miao1007 2020-05-09 12:08:37 +08:00 via iPhone
这种方案 相当于后门了
|
12
iFlicker 2020-05-09 12:09:52 +08:00
@also24 Jetbrains 家的 IDE 一直都开有一个 webServer 以前发现了还没注意是干啥的 这回知道了哈哈哈哈
|
13
also24 2020-05-09 12:18:05 +08:00 1
@wysnylc #9
这个页面在刚打开的时候就以空内容请求了这个接口,这个接口会返回当前的 IDE 名称和版本。 如果请求这个接口失败,这个页面后续是不会用这种方式来安装插件的。 @miao1007 #10 IDE 那边应该有校验,我直接 get 这个接口的话会提示是否信任。 以及,IDE 那边并不是静默下载,而是弹出安装提示框而已。 https://i.loli.net/2020/05/09/cwpJUI1Rl7SiuaX.png @1oNflow #11 资源问题还真没太注意,猜测应该不会占用太多,毕竟没有太多复杂的东西在里面。 @iFlicker #12 之前用 Toolbox 的时候就注意到了,它的登录回调也是这样实现的。 |
14
Jirajine 2020-05-09 12:22:01 +08:00 via Android
这完完全全就是开后门,网页可以通过这种方式逃逸出浏览器沙盒执行代码,要是被那些 xx 联盟 sdk 学去了那还了得。
|
15
charlieputon 2020-05-09 12:24:55 +08:00 via Android
这个和安卓开发通过 url scheme 调起 activity 好像啊
|
16
jin7 2020-05-09 12:53:58 +08:00
又学了一招...
|
17
sheeta 2020-05-09 13:00:40 +08:00 1
哈哈,腾讯的 qq 登录也是这么干的,不然它怎么知道你电脑上登录了 qq
|
18
sheeta 2020-05-09 13:01:04 +08:00
|
19
kaedea 2020-05-09 13:15:44 +08:00 via Android
uri scheme
|
21
gamexg 2020-05-09 13:31:11 +08:00 via Android
@wysnylc 我装了 jb 家不少 ide,网页安装插件时,只有运行中的 ide 显示,未运行的就没有显示。
|
22
Xusually 2020-05-09 13:37:17 +08:00 2
浏览器页面和本地 web server 交互,说难听点就是妥妥的后门。之前很多软件都爆了这种漏洞,比如百度的,Zoom 的。
zoom 的我贴一个链接: https://www.infoq.cn/article/zTyeHcfM*6jMjBCYNK4J |
23
hahiru 2020-05-09 14:19:43 +08:00
>localhost 服务器存在的唯一原因是 Apple 的 Safari 不支持 URI 处理程序。
所以这都是苹果的错! |
24
huage2580 2020-05-09 14:35:31 +08:00 1
其实 啊,网页开 webServer 交互通讯,是很常见的歪路子。在安卓这边,微信内置会封杀 url scheme 。某某音乐就是用这种方式拉起播放器的。当时看到的时候,真滴太 6 了
|
25
szzhiyang 2020-05-09 16:07:07 +08:00
@also24 咦,那浏览器中的网页是怎么知道 IDE 监听的是哪个端口呢?端口号是它们事先约定好的还是 IDE 当场告诉它的?
|
26
Jirajine 2020-05-09 16:11:07 +08:00 via Android
@lshero 那就很糟糕了,据我所知除了 MS 的 uwp 以外没有阻止和 localhost 通讯 /绑定高位端口的机制,防火墙完全管不到。看起来这些端口都是 hardcode 的,可以考虑写一个程序把这些端口都占据并在收到请求时提示用户。
|
30
zhengjian 2020-05-09 23:12:00 +08:00 via iPhone
QQ 的自动登录也是这样的
|