【问题标题】:Ensure exclusive access to webservice确保对 Web 服务的独占访问
【发布时间】:2010-04-11 11:07:58
【问题描述】:

为了安全起见,确保只有我的应用程序才能访问托管在公共服务器上的 Web 服务的最佳做法是什么?我应该实现共享密钥还是什么?

我的网络服务托管在 Google 的 App Engine 上,我的应用程序在 iPhone 和 iPad 上运行。

如果您需要更多信息,请尽管询问。

谢谢, 亨里克

【问题讨论】:

  • 我猜“独占访问”对我来说不是很清楚——只有你的 iPhone?只有一组有限的 iPhone?只有你的应用程序在任何人的 iPhone 上?只有许可用户? “独家”是否意味着“安全”,即您是否担心保护敏感数据或只是想确保没有其他人编写利用您的网络服务的应用程序?

标签: security web-services


【解决方案1】:

某种挑战/响应身份验证将是您最好的选择,但您可以使用一些简单的东西,例如随每个请求发送的密钥。不过,对于拥有数据包嗅探器的人来说,对安全性进行逆向工程可能很容易——我猜你花在它上面的时间与你真正关心的程度有关:)

【讨论】:

    【解决方案2】:

    如果您要求您的 iphone 应用程序用户输入登录名/密码,那么实现您想要的就很简单了。但我假设你不想要那个..

    否则,无法确保您的应用可以独占访问您的网络服务。人们总是可以嗅探 HTTP 流量并对其进行欺骗。人们可以对您的应用程序进行反编译/逆向工程以找出密钥/密码。

    查看 StackOverflow 上的其他讨论 - How to restrict access to my web service?How can I create and use a web service in public but still restrict its use to only my app?

    【讨论】:

      【解决方案3】:

      您可以将您的应用程序编程为仅处理包含您的 iPhone's unique identier 的请求 - 请参阅 StackOverflow 问题 [Unique identifier for an iPhone app]。 id 仍可能被嗅探,因此根据您的需要,您可能需要一些方法来应对这种情况。

      【讨论】:

        【解决方案4】:

        嗯,我有类似的问题。我意识到,没有 100% 的解决方案。我所做的是,我使用了不同的方法。当然,我已经实现了 OAuth 和 SSL,而不是为我的网络服务制定算法来学习我的应用程序的行为。 我尝试将该算法放入某种模式、模板中,以便可以在更多场景中使用。它仍在开发中,所以这里是模拟该算法的简单控制台应用程序的代码。希望这可以帮助: https://github.com/vjeftovic/LearningRESTSimulation

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-09-11
          • 2010-09-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多