Ios 使用框架API令牌验证来自iPhone的请求

Ios 使用框架API令牌验证来自iPhone的请求,ios,authentication,mobile,Ios,Authentication,Mobile,因此,我正在创建一个iOS框架,它将是一个静态库,开发人员将添加到他们的项目中。当他们在我们的网站上创建帐户时,我想给他们一个独特的令牌,他们将其放在应用程序中使用我的静态库 对于iOS开发人员,考虑TestFlight,您注册,获取应用程序ID,然后运行[TestFlight起飞:] 我想验证框架对REST Web服务的请求(使用https) 我能做些什么来防止人们“闯入应用程序代码”,窃取开发者api令牌并使用它发出请求?我的api端点不会公开,至少目前不会。我无法验证用户身份,因为它是一个

因此,我正在创建一个iOS框架,它将是一个静态库,开发人员将添加到他们的项目中。当他们在我们的网站上创建帐户时,我想给他们一个独特的令牌,他们将其放在应用程序中使用我的静态库

对于iOS开发人员,考虑TestFlight,您注册,获取应用程序ID,然后运行
[TestFlight起飞:]

我想验证框架对REST Web服务的请求(使用https)

我能做些什么来防止人们“闯入应用程序代码”,窃取开发者api令牌并使用它发出请求?我的api端点不会公开,至少目前不会。我无法验证用户身份,因为它是一个框架,这将是一个糟糕的用户体验

问题是,我能做些什么来防止这种行为?我应该在乎吗?我最终会按X请求向开发者收费,所以我希望能够验证这一点,这样我们就不会有垃圾邮件发送者为开发者买单

其他iOS框架如何处理这个问题


欢迎提出任何设计想法和批评。

我不确定你想做什么是可能的。如果文本在客户端代码中,则可以将其拉出。SSL固定在这里也不会真正帮助您,因为证书也在客户端二进制文件中

一种接近的方法是使用开发人员的身份验证系统。假设一个用户登录到开发人员的身份验证系统,然后在服务器端为该用户生成一个短期密钥。然后可以(通过SSL固定)将客户机代码传递给该短期密钥,并使用该密钥进行API调用。然而,这要求开发人员实际拥有一个安全的身份验证系统,并且没有SSL固定,他们很容易受到一个简单的中间人攻击,该攻击将暴露短暂的密钥

您可以尝试通过限制您端的API调用,或者尝试使用每个应用程序的启发式方法来近似正常的API使用情况,从而将损害降至最低。任何不正常的行为都会被标记为潜在的黑客行为。这可能足以把大多数想成为黑客的人赶出去。真正的黑客将了解节流,并聪明地绕过它

您最安全的选择是将其设置为服务器端库,而不是客户端库。然而,这当然不是一个超级性感的解决方案。并非所有应用都有服务器端组件。。。即使他们这样做了,一旦开发人员的服务器被破坏(即被垃圾邮件或黑客攻击等),游戏就又重新开始了。但是,最终,服务器端解决方案的好处在于,您至少不易受到攻击,并且将保护系统的责任交给了开发人员


这里真正缺少的是对源自苹果设备的网络呼叫进行某种形式的基于苹果的验证。。。。但这可能永远不会发生

谢谢,这就是我害怕的。服务器端并不是我真正的选择。