gpt4 book ai didi

android - 保护 REST API 供 Android 客户端使用

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:55:29 27 4
gpt4 key购买 nike

我们正在 Rails 中开发一个 JSON REST API,供我们也在开发的 Android 应用程序使用。有什么方法可以保护 API,使其只能由我们特定的 Android 应用程序使用?

API 是只读的,不涉及任何类型的用户相关或其他敏感信息。但在合理的范围内,我们希望防止滥用并将其使用限制在我们的应用中。

我可以轻松地向 API 添加身份验证 token 并将其与应用程序一起分发,但是:

  1. 如果我们使用 BASIC 身份验证,我们可能必须将 API 转移到 SSL。
  2. 对于有决心的人来说,打开 Android APK 二进制文件并发现身份验证 token 可能是微不足道的。

这种情况似乎类似于一家咖啡馆在商店柜台上张贴他们的 WiFi 密码 - 你必须将 secret 告诉所有想使用你的服务的人,所以一开始就知道它似乎毫无意义。

最合理的方法是什么?

最佳答案

想要保护一个可能是公开的未记录的 API 以便它只能由一个应用程序访问,意味着您想要阻止那些确定使用您的 API 的人使用您的 API。

意思是那些会尽一切可能使用您的 API 的人。

如果不是这种情况,添加 Auth token 将不会是微不足道的,但至少对于偶然发现您的 API 的人来说是一个重要的垫脚石。实现这一点并不是一个非常糟糕的主意。

因为此身份验证不是基于用户的,而是基于应用程序的,并且您不希望身份验证依赖于用户输入。该请求必须完全由应用程序完成。

这意味着您无论如何都必须这样做(添加硬编码 token )。只有你让有决心的人很难发现访问和请求 token 以及方法。

这取决于具体情况,但我会选择 SSL 和硬编码 token 。

一些额外的安全措施:

  • 向应用程序释放访问 token ,该应用程序只需要发送一个定期请求 token 。意味着人们拦截的机会更少硬编码请求 token ,但是基于 session 的访问 token 到期。也许每次安装应用程序时只执行一次。
  • 在通过空中发送之前对这个请求 token 进行编码。意义人们必须反编译您的应用。
  • 混淆代码(使其更难反编译)。

关于android - 保护 REST API 供 Android 客户端使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15273217/

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