0

我们正在构建一个 iOS 应用程序,它与用于数据存储和检索的 Web 服务集成。

目前有几个端点不需要身份验证,这意味着应用程序没有登录。

我们正在尝试使用客户端和服务器之间的令牌身份验证来阻止非应用用户调用公共 Web 服务。

问题在于,由于应用程序不需要登录,因此令牌将在应用程序内静态生成,因为我们无法在令牌生成中使用客户端提交的数据。

这导致任何人都可以反编译应用程序、找到我们的公钥并计算出如何生成令牌然后随意调用 Web 服务的问题。

过去有没有人解决过类似的问题?令牌是防止不受欢迎的客户调用服务的最佳方式吗?

或者有没有一种方法可以从应用程序中存储公钥,以防止人们发现它?

谢谢

4

2 回答 2

0

When User first start the app, it communicates with the server and send it your device id. The Server will use the device id to generate the Userid and key. You will use that to authenticate people after.

于 2013-07-15T03:12:36.107 回答
0

您肯定需要将应用程序和凭据分开。这是您可以做到的一种方法。假设用户安装了您的应用程序。用户需要做的下一件事是访问您网站中的网页以获取 ID 和密钥。该网页可以生成一个 ID 和一个密钥,并显示一个 QR 码,最终用户可以扫描该二维码以将 ID 和密钥输入应用程序。该应用程序将 ID 和密钥存储在某处,并使用诸如Hawk方案之类的东西来签署请求,服务器可以对其进行验证。

于 2013-07-15T03:57:39.957 回答