在 iOS 应用中调用"secret" URL 的安全性如何?



我们想在我们的应用程序中使用一个web服务,显然需要调用URL。它不是HTTPS,只是普通的HTTP,使用NSURLConnection。

问题是:这个网络服务非常昂贵,每千个呼叫都要花费我们真正的钱。我们担心的是,有人可能知道我们调用哪个URL,然后滥用它,让成本激增。我们没有办法跟踪对该web服务的调用是否合法。

我们的计算是基于我们销售了多少应用,乘以每个用户平均使用该应用的频率。我们有一些很好的统计数据作为我们假设的基础。

是否有已知的方法来确定应用程序在互联网上调用哪个URL来检索信息?

当手机连接WiFi时,您可以轻松使用网络嗅探器来找出此信息。听起来,在URL中使用SSL和某种安全令牌是至关重要的。

如果这不是一个选项,也许你可以提供自己的代理服务,将使用SSL和安全令牌?代理还授予限制请求和阻止已知恶意用户的能力。节流为每个用户在给定时间间隔内可能产生的开销设置了上限。代理的另一个好处是,它允许收集统计数据并度量不同用户所产生的成本,从而促进恶意用户检测和业务规划。如果代理背后的服务是无状态的,通过添加缓存来删除大量昂贵的调用,还可以为您节省一些钱。

如果Web服务没有加密,那么使用代理来拦截电话发出的Web请求将是微不足道的。如果昂贵的Web服务不提供至少某种形式的基本身份验证,我会认真考虑将其URL包含在公共应用程序中。

使用普通url肯定会让脚本kiddy把你搞砸。如果您无法跟踪对昂贵web服务的调用是否合法,请设置您自己的web服务,该服务位于真实web服务的前面,以确保您自己的web服务可以在将请求转发给真实web服务之前验证调用的合法性。

是的,有很多方法可以做到这一点。例如,将iPhone连接到wifi网络,路由器有一个透明的代理。检查代理的日志。您将看到所有url。这取决于您的用户有多坚定,但这相当容易。

忽略越狱设备的人可能会查看您的应用程序这一事实,我相信如果有人使用WireShark等应用程序嗅探WiFi热点上的流量,那么可以像检查任何其他设备(笔记本电脑,平板电脑等)一样检查流量。然而,我怀疑在蜂窝3G网络上这种风险会很大。

问得好。

正如许多人所说,是的,很容易找出应用程序请求的url

关于HTTPS:但是由于您使用的是HTTPS,所以没关系,因为在HTTPS上,域名将被模糊为IP地址,并且人们无法看到URL查询字符串参数。例如,如果您的URL是https://somewebsite.com?uid=mylogin&pass=mypass,他们肯定无法看到"uid=mylogin&pass=mypass",他们可能只能看到IP地址,而不是域名本身。(参见https://serverfault.com/questions/186445/can-an-attacker-sniff-data-in-a-url-over-https)

旁注:我们可以假设苹果在审查你的应用时执行了某种HTTP请求诊断——这是有道理的,因为从多个角度了解你的应用最符合他们的利益。

最新更新