防止iOS URL方案劫持

Ran*_*lue 7 security url-scheme ios ios9

我有一个通过URL方案从另一个应用程序打开的应用程序.该URL包含注册令牌.由于任何应用程序都可以注册与我的应用程序相同的URL方案,我担心"假"应用程序可以执行中间人攻击并捕获注册令牌.

我的想法是在我的应用程序首次打开时检查URL方案是否未打开另一个应用程序.

从安全角度来看,如果URL方案第一次打开我的应用程序,它将来是否会打开我的应用程序?

Tam*_*ola 5

如何使用iOS 9通用链接?

与自定义网址方案不同,其他应用无法声明通用链接,因为它们使用指向您网站的标准HTTP或HTTPS链接.

https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html

这样,"调度表"就在您的服务器上,因此没有其他应用程序可以劫持注册URL.(URL分派基于AppID)


Wai*_*ain 2

这是一个有效的(通常被忽略的)攻击向量。严格来说,这并不是中间人攻击,因为它不会将 URL 转发到您的应用程序(它不能)。这几乎更糟糕,因为攻击应用程序只会真正崩溃,而且看起来你的应用程序已经......

当您的应用程序处于后台时,可以随时安装另一个应用程序。从技术上讲,您的应用程序运行时可能会发布并安装现有应用程序的更新(很难知道是否会发生这种情况)。因此,仅在应用程序首次打开时进行测试并不安全。