【问题标题】:Protecting Data Feed for iPhone App保护 iPhone 应用程序的数据馈送
【发布时间】:2011-01-31 19:35:56
【问题描述】:

我正在创建一个从我的服务器上的文件中提取数据的应用程序。该文件根据通过 URL 传递的 GET 值从我的数据库中获取数据。

我希望关闭此提要 - 也就是说,我不希望人们自行查找数据源并读取数据。我考虑发送一个字母数字 id 和 url 字符串,但如果他们能找到我正在调用的 URL,那么就不会有任何东西阻止他们获取该字母数字 id。

我正在寻找任何可能对我有帮助的想法或经验。

【问题讨论】:

    标签: ios iphone feed protection


    【解决方案1】:

    确实没有任何方法可以阻止人们阅读您的供稿。您可以进行混淆处理,但根本问题是任何人都可以下载该应用程序并对其进行检查,以找出您用来隐藏数据的任何秘密。

    但是,对不经意的观察者隐藏它的方法是将密钥存储在应用程序的代码段中,然后(通过 TLS 链接)将该密钥传递给服务器,然后服务器将授予访问权限。

    【讨论】:

      【解决方案2】:

      您可以使用 HTTPS,这将防止随意观察数据传输,尽管它不会完全保护它。

      您还可以要求用户登录来检索提要,通过使用设备的 UDID 作为帐户值来绕过用户注册过程相对容易,然后只要求用户输入密码... . 此方法仍可能被恶意个人滥用,但一旦您引入用户帐户,您就可以限制请求。

      您还可以在 url 字符串中使用 guid 或哈希,以防止不经意的观察者只是遍历所有可能的值来抓取您的数据库。

      【讨论】:

      • 我假设没有办法在某人第一次下载应用程序时自动获取他们的 UDID?我想我可以为每个下载应用程序的人创建一个用户,使用他们的 UDID 作为他们的用户代码。我不需要密码,但如果某人的 UDID 对数据进行了大量的调用,我可以将其切断 - 但如果我有代码在 UDID 不存在时自动创建用户帐户,那么有人可以回避整个事情,迫使它每次都创建一个新用户。
      • 您无法通过 App Store 获取,但当 App 首次运行时您可以调用 [[UIDevice currentDevice] uniqueIdentifier],它会返回手机的 GUID,然后您可以将其发送到您的服务器.
      • 这可行,但我的意思是,如果我允许用​​户从他们的设备向我发送他们的 UDID,那么有人可以获取数据源的 URL 并发送一个假的 UDID。
      • 是的,我最初提到它可能被恶意个人滥用,但它为任何攻击增加了另一层复杂性,并允许您进行一些限制。您可能希望存储传入的 IP 和 UDID,以防止从同一个地方提交多个 UDID 过快。
      猜你喜欢
      • 1970-01-01
      • 2012-04-23
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 2010-11-27
      • 2017-11-05
      相关资源
      最近更新 更多