我们希望在我们的应用中使用Web服务,显然需要调用URL。它不是HTTPS,只是普通的旧HTTP,使用NSURLConnection。
问题是:这个网络服务非常昂贵,每千次通话都需要我们真正的钱。担心的是,有人可以找出我们调用的URL,然后滥用它,让成本爆炸。我们无法跟踪对该Web服务的调用是否合法。
我们的计算基于我们销售的应用程序数量,乘以每个用户平均使用该应用程序的频率。我们有一些很好的统计数据,我们的假设基于这些统计数据。
有没有已知的方法来确定应用在互联网上调用哪个URL来检索信息?
答案 0 :(得分:12)
当手机在WiFi上时,您可以轻松使用网络嗅探器来找出此信息。听起来,在URL中使用SSL与某种安全令牌实际上是至关重要的。
如果这不是一个选项,也许您可以提供自己的代理服务,使用SSL和安全令牌?代理还授予限制请求和阻止已知恶意用户的能力。限制为每个用户在给定时间间隔内可能产生的费用设置上限。代理的另一个好处是它允许人们收集统计数据并衡量不同用户所带来的成本,从而促进恶意用户检测和业务规划。代理还可以节省一些钱,如果它背后的服务是无状态的,可以添加一个可以消除大量昂贵电话的缓存。
答案 1 :(得分:4)
如果Web服务未加密,使用代理拦截手机发出的Web请求将是微不足道的。如果昂贵的Web服务不提供至少某种形式的基本身份验证,我会认真考虑在公共应用程序中包含其URL。
答案 2 :(得分:3)
使用普通网址是让脚本小子手无法运行的可靠方法。如果您无法跟踪对昂贵的Web服务的调用是否合法,请设置您自己的Web服务,该服务面向真实的Web服务,以确保您自己的Web服务可以在转发之前验证调用的合法性。请求真正的网络服务。
答案 3 :(得分:2)
是的,有很多方法可以做到这一点。例如,将iPhone连接到wifi网络,其中路由器具有透明代理。检查代理的日志。你会看到所有的网址。取决于用户的确定程度,但这很容易。
答案 4 :(得分:1)
忽略越狱设备的人可能会查看您的应用程序的事实,我相信如果有人使用应用程序通过WiFi热点嗅探流量,可以像任何其他设备(笔记本电脑,平板电脑等)一样检查流量例如WireShark。但是,我怀疑在蜂窝3G网络上存在很大的风险。
答案 5 :(得分:1)
好问题。
正如许多人所说,是的,很容易找出您的应用请求的网址。
关于HTTPS的说明: 但是,由于您使用的是HTTPS,您可以,因为通过HTTP,域将被隐藏到IP地址,人们无法看到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)
<强>旁注:强> 可以安全地假设Apple在审核您的应用程序时执行某种HTTP请求诊断 - 这是有意义的,因为从多角度尝试找出您的应用程序的作用符合他们的最佳利益。