gpt4 book ai didi

android - 如何防止其他 iOS/Android 应用程序使用我的 RESTful API?

转载 作者:可可西里 更新时间:2023-11-01 03:41:21 25 4
gpt4 key购买 nike

我有一个预先存在的 iOS 和 Android 应用程序,我正在为此进行更新,包括 RESTful 服务 API 和用于用户身份验证的 Facebook 登录。该应用程序的一般流程是:

  1. 用户通过 Facebook 的 SDK“登录”到我的应用,这会将访问 token 返回到我的应用。
  2. 应用程序调用 RESTful 服务,包括作为参数的 Facebook 访问 token (使用 HTTPS 和 SSL)
  3. 被调用的服务将接收到的访问 token (以及仅存储在我的服务器上的应用密码)发送到 Facebook 以验证用户是谁,并根据此执行操作。 Facebook 将要求服务器端调用提供应用程序 secret 。

我的应用程序已经流行起来并且已经有多个克隆,我想阻止这些克隆使用我的 RESTful API(因为我确信他们会在我发布更新时尝试这样做)。让我们假设克隆是智能的,使用与我的应用程序相同的 Facebook 访问 token (如果可能的话),并且遵循与我的应用程序相同的调用 API 的模式和频率。

有没有办法确保或几乎确保对我的服务的调用仅来 self 的应用,而不是克隆应用?

提前致谢!

最佳答案

您可以通过在请求中包含签名并验证它来做到这一点。

应用端:

  1. 做类似的事情:signature = md5( md5(url + data) + MY_RANDOM_KEY)

  2. signature附加到数据,或url等

  3. 向 REST api 发送调用(像往常一样)

服务器端:

  1. 从正文/url 中提取签名(并从那里删除它)。

  2. 计算你认为它应该是什么:signature_should_be = md5( md5(url + data) + MY_RANDOM_KEY) [记住你已经删除了signature从 url/data 获取原始哈希前状态的 url/data]

  3. 验证signaturesignature_should_be是否相等

这样做,连同 SSL,应该可以使您的 API 足够安全。

关于android - 如何防止其他 iOS/Android 应用程序使用我的 RESTful API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22774584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com