昨日,有多位苹果用户反映称,在自己手机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。