gpt4 book ai didi

android - 受信任应用程序的 Secure Rest API

转载 作者:太空狗 更新时间:2023-10-29 13:10:40 26 4
gpt4 key购买 nike

我已经为我的 Android 应用程序创建了休息 API。所有 API 均使用 OAuth2(密码 grant_type)进行保护。

用户提供用户名和密码,服务器验证凭据并发出 access_token 和 refresh_token,然后可用于调用 API。

现在的问题是 API 是公开的并且对所有人开放。我如何验证是否只有从“我的应用程序”生成的调用得到响应。

场景:XYZ 是 My App 的用户,也是非常优秀的开发者。他很好奇,想弄清楚我的应用程序和 api 是如何交互的。现在他也有点雄心勃勃(我猜)并决定创建他自己的 android 应用程序(类似于我的应用程序)并使用我的 rest API。如何保护我的 API 免受这种使用?

我查看了其他几篇文章,但没有发现任何有用的信息来保护我的 API 免受此类使用。

最佳答案

您尝试做的事情是不可能的,至少从工程的角度来看是这样。您可以使用各种工具来混淆存储在您的应用程序中的 secret (例如 ProGuard ),但最终,无论您使用什么机制来混淆您的 secret ,使用它们的设备都必须可以访问它们。您还可以采取其他步骤来增加对应用程序进行逆向工程所需的时间,例如以可能破坏逆向工程客户端的方式频繁更改 API,或推送强制更新以更改 secret 和用于混淆这些 secret 的机制 secret 。

然而,无论您做什么,足够积极的用户将能够获得您在应用程序中分发的任何 secret 。

在法律上,您有更多选择。您可以通过使用适当的 EULA 使未经授权的应用程序无法合法访问您的 API;见Blizzard v BnetD .如果您对您的服务所提供的数据拥有版权,您可以阻止第三方未经您的许可在别处复制它,或者向他们收取费用。可能还有其他合法选择;你需要咨询律师。

但何必呢?在开始这条路之前,也许您应该问问自己,为什么您首先要尝试阻止其他应用程序访问您的 API。如果用户觉得你的服务有值(value),但对你提供的客户端很不满意,他们愿意安装第三方应用程序来访问你的服务,也许你应该专注于改进你自己的客户端,而不是强制你的用户使用客户端他们显然不喜欢。

关于android - 受信任应用程序的 Secure Rest API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41498443/

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