确保对Web服务的独占访问权限

时间:2010-04-11 11:07:58

标签: security web-services

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

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

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

谢谢, 亨利克

4 个答案:

答案 0 :(得分:2)

某种挑战/响应身份验证是您最好的选择,但您可以使用与每个请求一起发送的密钥一样简单的内容。虽然使用数据包嗅探器的人可能很容易对安全性进行逆向工程 - 我猜你花在它上面的时间量与你真正关心的程度有关:)

答案 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?

答案 2 :(得分:1)

您可以将应用编程为仅投放包含iPhone's unique identier的请求 - 请参阅StackOverflow问题[Unique identifier for an iPhone app]。 id仍然可以被嗅探,因此根据您的需要,您可能需要方法来解决这个问题。

答案 3 :(得分:1)

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