我没有找到任何具体的答案,而且大多数解决方案都是较旧的解决方案,所以我想向社区寻求最佳实践,以保护 Rails API 免受其他请求的影响,并只允许 Android 应用程序访问它。没有用户注册或登录。Android 应用只需要访问数据。
我正在考虑在我的 Android 应用程序中插入一个密钥,并在每个请求中传递该密钥,但这对我来说似乎不太安全。
在保护 Rails API 免受其他请求并只允许 Android 应用程序访问它时,推荐的做法是什么?谢谢你。
我没有找到任何具体的答案,而且大多数解决方案都是较旧的解决方案,所以我想向社区寻求最佳实践,以保护 Rails API 免受其他请求的影响,并只允许 Android 应用程序访问它。没有用户注册或登录。Android 应用只需要访问数据。
我正在考虑在我的 Android 应用程序中插入一个密钥,并在每个请求中传递该密钥,但这对我来说似乎不太安全。
在保护 Rails API 免受其他请求并只允许 Android 应用程序访问它时,推荐的做法是什么?谢谢你。
我对 API 没有太多经验,但我知道如果你想正确保护它们,你可以使用一些API 密钥来处理这项工作
--
API 密钥
如果您只想为特定的用户组提供功能,最好将 API 密钥嵌入到他们的应用程序中。
我不知道您具体是如何实现这一点的(IE 仅适用于您的 android 系统),但在理想世界中您想要的只是允许特定的 API 密钥启用帐户访问 Rails 应用程序数据。
然后,您的工作将是仅提供 android 驱动的设备的密钥(我还不确定这部分)。
在保护 API方面,Rails 实际上非常通用:
--
安卓ID
我不知道具体,如果您在Android设备上安装应用程序,您肯定会访问Android ID或其他东西吗?
阅读本文档后,您似乎可以访问 Android 内部的一组设备 ID(用于您的设备和 Android 安装)。我将研究如何使用这些来识别 API 请求
也许您的流程可能类似于 - 应用程序的第一次运行将验证设备是 Android,如果是,则将设备 ID 添加到您的 rails“API 密钥”数据库。然后,这将允许您在将来允许访问该设备
我认为您无法获得 100% 的安全性。但是如果您将密钥存储在应用程序的数据区域中(即,将文件写入内部存储位置),在最坏的情况下将很难获得。我犹豫说不可能。缝隙是有根设备的人可以很容易地打开文件。您可以使用源代码中的另一个密钥加密密钥等技巧,然后使用 ProGuard 或其他东西混淆您的源代码。这也不会是完美的,但是即使用户有root,获取密钥也会让后面的人非常痛苦。可能是你能做的最好的。