5

我没有找到任何具体的答案,而且大多数解决方案都是较旧的解决方案,所以我想向社区寻求最佳实践,以保护 Rails API 免受其他请求的影响,并只允许 Android 应用程序访问它。没有用户注册或登录。Android 应用只需要访问数据。

我正在考虑在我的 Android 应用程序中插入一个密钥,并在每个请求中传递该密钥,但这对我来说似乎不太安全。

在保护 Rails API 免受其他请求并只允许 Android 应用程序访问它时,推荐的做法是什么?谢谢你。

4

2 回答 2

3

我对 API 没有太多经验,但我知道如果你想正确保护它们,你可以使用一些API 密钥来处理这项工作

--

API 密钥

如果您只想为特定的用户组提供功能,最好将 API 密钥嵌入到他们的应用程序中。

我不知道您具体是如何实现这一点的(IE 仅适用于您的 android 系统),但在理想世界中您想要的只是允许特定的 API 密钥启用帐户访问 Rails 应用程序数据。

然后,您的工作将是仅提供 android 驱动的设备的密钥(我还不确定这部分)。

在保护 API方面,Rails 实际上非常通用:

在此处输入图像描述

--

安卓ID

我不知道具体,如果您在Android设备上安装应用程序,您肯定会访问Android ID或其他东西吗?

阅读本文档后,您似乎可以访问 Android 内部的一组设备 ID(用于您的设备和 Android 安装)。我将研究如何使用这些来识别 API 请求

是否有唯一的 Android 设备 ID?

也许您的流程可能类似于 - 应用程序的第一次运行将验证设备是 Android,如果是,则将设备 ID 添加到您的 rails“API 密钥”数据库。然后,这将允许您在将来允许访问该设备

于 2014-08-08T09:24:14.983 回答
1

我认为您无法获得 100% 的安全性。但是如果您将密钥存储在应用程序的数据区域中(即,将文件写入内部存储位置),在最坏的情况下将很难获得。我犹豫说不可能。缝隙是有根设备的人可以很容易地打开文件。您可以使用源代码中的另一个密钥加密密钥等技巧,然后使用 ProGuard 或其他东西混淆您的源代码。这也不会是完美的,但是即使用户有root,获取密钥也会让后面的人非常痛苦。可能是你能做的最好的。

于 2014-08-24T16:39:02.850 回答