iOS系统关于URL Schemes的漏洞探究
iOS系统关于URL Schemes的漏洞探究 一、何为URL Schemes 我想这个东西的设计的目的是为了方便App之间的相互调用与通讯,你可以在自己的App中使用OpenURL方法来唤起其他的App。比如微信的URL Schemes是wiexin,我们新建一个工程,实现如下代码后运行程序: [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"weixin://]]; 这时你会发现,你的应用启动后很快就调起了微信的客户端。 二、由URL Schemes引发的漏洞的根源 1、一个小问题引起的漏洞根源 如上所说,通过URL Schemes可以在应用间相互唤起,而产生漏洞的根源在于这个URL并非是应用唯一的。apple并没有任何限制或者审核这个URL的任何措施,也就是说,如果两个App有着相同的URL Schemes,那么系统唤起的App可能并不是你想唤起的。 2、URL Schemes的优先级如何确定 由于相同的URL Scheme可能同时被多个App使用,再如果这些App都安装在了同一个设备上,那么系统究竟会唤起哪一个呢?这个我也不能十分的确定,只有一点可以肯定:如果有和系统应用的URL Scheme相同,那么系统一定会唤起系统自己的应用,在这里系统的应用有着最高的优先级(苹果这里做的好像很不厚道