
并没有在官网登陆我的账号,也不是 Chrome 提示想要打开 idea 那种调用,这是怎么知道我本机安装的什么版本,并能通知 ide 进行安装?
1 wysnylc 2020-05-09 11:29:38 +08:00 没用过 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 @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 @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 哈哈,腾讯的 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 浏览器页面和本地 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 其实 啊,网页开 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 mmnsghgn 2020-05-09 23:12:00 +08:00 via iPhone QQ 的自动登录也是这样的 |