我们有一个简单的API,我们不希望外部世界使用,只希望我们的iPhone客户端使用。
如何为移动设备的API验证客户端?
答案 0 :(得分:1)
如果您的客户端可以访问API,您将无法阻止确定的技术人员使用您的API(因为用户可以识别存储在客户端中的任何机密)。
如果您只想防止随意使用,那么对客户端进行身份验证的一种相对简单的方法就是拥有一个存储在客户端中的共享静态密钥,并将其用于HMAC based API authentication scheme。
答案 1 :(得分:1)
这是一个内部类似于你问的问题:
Provide secure Facebook authentication with my Server
以下是我在那里回复的内容:
它被称为远程证明。这有很多问题。
在你走向这个方向之前,你需要问自己两个问题
你是谁在防范?
我愿意投资多少?
如果您要保护自己免受知识匮乏的学生的攻击,可能会编写另一个将使用您的服务器的移动应用程序,那么您可以使用一些共享秘密。
如果您要防范更复杂的软件工程师(可以对您的应用程序进行逆向工程) - 这是不够的。该工程师可以从您的应用程序中提取secert并在其应用程序中使用它。
可以保护您免受简单逆向工程的解决方案非常复杂。