我正在为我的移动应用程序制作一些 Restful API。
APP 和 webserver 之间的通信必须在 REST 中进行。这些 api 应该是私有(private)的,只有我的应用程序才能调用它们以获得成功的结果。
困难的部分是,我的应用程序中不需要用户 ID 和密码,所以我不知道如何在没有基本用户身份验证的情况下使用移动应用程序限制 rest API。
我认为的一个解决方案是嵌入某种硬编码字符串,这样当移动应用程序使用 restful url 时,它们将以加密格式通过 ssl 传递它。但我知道这似乎是非常糟糕的解决方案..
请提出在这种情况下最好的解决方案。
最佳答案
看看基于哈希的消息验证码 (HMAC) 机制。
维基百科链接:http://en.wikipedia.org/wiki/Hash-based_message_authentication_code
您的客户端(移动应用程序)将需要一个标识 REST Web 服务客户端的 公共(public) API key 和一个 私有(private)/加密 key 。公共(public) API key 可以与 HTTP 请求一起发送。它是公开的,每个人都可以看到。但是,私钥不应该与请求一起发送,并且应该只被服务器和客户端知道。此 key 用于生成散列消息,然后将其发送到服务器。 HMAC 可以使用 SHA1/MD5 算法生成,该消息应该由服务器和客户端都知道的算法生成,最后是私钥。
关于php - 无需对移动应用进行用户身份验证即可保护私有(private) REST API 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28251404/