昨日,有多位苹果用户反映称,在自己手机app中,点击“分享到微信”链接或拉起“微信支付”时,会自动跳转到“深圳航空”app。这些用户此前都安装了“深圳航空”app,而卸载“深圳航空”app后,则恢复正常。
在“虎扑”、“国务院”、“网易云音乐”、“澎湃新闻”等大量app中试图拉起微信时,都会发生问题。而卸载“深圳航空”app后,则恢复正常。
对此,腾讯微信团队回应称,这是由于深航app“劫持”了微信跳转,微信已和对方沟通处理,近期深航将发版修复。深圳航空方面表示,目前已经修复这一问题,不会造成用户数据泄露。
这不是第一次ios系统用户发现手机app跳转被劫持。
2018年5月,有苹果iphone用户反馈,如果在支付宝内尝试打开淘宝app,会自动跳转到另外一个app,仿佛被“劫持”了一样。
经过支付宝和淘宝技术团队排查发现,这个app使用了和淘宝同样的url scheme(类似url网址),从而干扰ios系统判断,出现跳转错误。
支付宝表示,只有安装了这个app的iphone手机才会出现这一跳转错误问题,安卓不受影响。
当时技术专家表示,这一问题的根源在于苹果ios系统不完善,允许不同的app设置同一个url scheme,事实上很多app都曾受到困扰。
不过,微信此次被劫持情况与淘宝被劫持的情况似乎更严重,这次所有app拉起微信时都会遇到劫持问题,之前只是在支付宝内拉起淘宝会遇到这一问题。
url域名解析成ip地址的过程被称作 dns 解析。在这个过程中,由于 dns 请求报文是明文状态,可能会在请求过程中被监测,然后攻击者伪装dns服务器向主机发送带有假ip地址的响应报文,从而使得主机访问到假的服务器。这个就是dns劫持的根本原理。
我们都知道苹果手机中的app都有一个沙盒,app就是一个信息孤岛,相互是不可以进行通信的。但是ios的app可以注册自己的url scheme,url scheme是为方便app之间互相调用而设计的。我们可以通过系统的openurl来打开该app,并可以传递一些参数。
url scheme必须能唯一标识一个app,如果你设置的url scheme与别的app的url scheme冲突时,你的app不一定会被启动起来。因为当你的app在安装的时候,系统里面已经注册了你的url scheme。