由chrome.app.isInstalled引发的血案 进入全屏
line

一、写在前面

也许这两天不少同学的FH已经升级到了v2020.3.517,并且悲催的发现这个版本的FH被浏览器禁用了,点看查看详情,差不多是这个样子的:

fh-forbid.png

或许也有同学直接到chrome://extensions 准备直接启用,于是会出现类似下面这样一个Dialog:

fh-reopen.png

是的,看起来确实很吓人,大家一定会误解,觉得是FeHelper要开始获取你的数据了,然而并不是。。。

二、有责声明

把FH脱光了给大家看,这个很重要!!!

  • FeHelper仅仅是一个浏览器插件工具,用户随用随删,免费、无成本!
  • FeHelper不会抓取任何用户信息,以前没有、现在不会、以后也绝不会!
  • 如果你表示怀疑,可以用抓包工具进行检测,推荐一些常用抓包工具:Wireshark、Fiddler、Charles
  • 如果你依然不放心,可以直接卸载掉FeHelper
  • FeHelper很早就已经在Github开源,大家感兴趣可以去看源码,Github搜 zxlie/FeHelper
  • 你可能更怀疑本机安装的FH源代码,你可以这样获取并进行安全审计:
    • 浏览器访问:chrome://version
    • 找到个人资料夹,复制路径 PATH
    • 进入Finder或者命令行终端,cd PATH
    • 继续进入FeHelper在本机安装的目录:cd Extensions/pkgccpejnmalmdinmhkkfafefagiiiad
    • OK,进入你已安装的版本目录,可以开始你的代码审计工作
    • 提审的代码是已压缩的,目的是加快下载安装速度,你可以到网上找代码美化工具,格式化后继续审计
  • 至此,FeHelper已经裤子都脱光了,目的就是不怕大家看,毕竟也没啥好看的

三、接着描述血案过程

在FeHelper的老版本(2018.x 时代),baidufe.com 官网是可以通过Google chrome Inline-Installation Api来完成插件安装状态的检测、以及直接安装的。Inline-Installation Api是啥?官方有Doc介绍:(在我很早以前的文章里也有写过。。。) https://developer.chrome.com/webstore/inline_installation ,不过简单点儿说,就是:

  • 验证你的网站
  • 网站html-head-block中增加一个link标签

    <link rel="chrome-webstore-item" href="https://chrome.google.com/webstore/detail/itemID">
  • 通过Api chrome.app.isInstalled检测当前页面指定的chrome-extension/app是否已安装,true表示已安装

  • 如果得到的结果是false,可以继续通过Api chrome.webstore.isntall 来直接通过官网安装,提高安装效率

然而,这个东西其实在06/12/2018就属于一个deprecated的Api!!!

截屏2020-03-0910.42.29.png

四、那咋办?

所以,官方弃用了一个过时的Api,也给开发者提供了另外一个解决方案,那就是我们在FH新版本里用到的externally_connectable!!

截屏2020-03-0910.46.31.png

是的,于是我是FH v2020.3.517版本中,增加了这个feature,旨在该版本过审后,能在用户访问FH官网 baidufe.com/fehelper 的时候,可通过消息机制,直接测试用户是否已安装过FH,以此作为chrome.app.isInstalled总是返回false的替代方案!

虽然目前FH新版本已经过审了,但在baidufe.com官网上,还没增加(也是还没来得及加)这个消息检测的feature,之后也不用加了。。。

五、发现灾难

3.8日早上,我的FeHelper成功升级到v2020.3.5.17,但我发现诡异的现象,是这个版本被浏览器禁用掉了,如「一」中的截图描述,于是知道新版本里增加的这个Feature是灾难性的,尤其在当下用户信息敏感的状态下,这个浏览器警告/提示更会让用户误解,甚至直接卸载。当天,也有不少用户直接给我提feedback & Mail,基本都逐个回复,消除疑虑。

六、策略回滚

3.8日已紧急回滚这个feature,重新提审;按照近期google chrome extension的审核速度,一般2个工作日过审,届时大家的FeHelper会恢复原样。


最后,祝大家工作生活顺利!

阿里巴巴-钉钉-开放平台,能力开放&开发者运营岗位招聘中, 期待你的加入!
钉钉开放,让应用开发更简单
充分开放,是钉钉的重要方向!除致力于为开发者打造丰富的开放API, 更易接入的场景化能力包, 完备的应用开发工具之外, 还需要持续构建开放能力的布道、开发者生态运营体系,包括培训、沙龙、大会、社区合作等等。业务在快速发展,我们也还需要更多优秀的小伙伴加入!

评论区域

line
  • 枫风 2020-03-12 13:38:17 回复
    坦诚相待,不惧流言,阿烈叔加油!