这可能是一个新手问题,但我会尝试创建一个有趣的辩论。
我知道有一些用于 API 基本身份验证、API 密钥、OAuth 2.0 的身份验证方法……所有这些方法都会在请求中添加标头或 formData 参数。
尽管您使用 SSL,但破解移动应用程序“通常很容易”(我现在正在考虑使用 Android:反编译应用程序、更改清单以允许自定义 SSL、再次编译并通过 SSL 代理嗅探所有请求)。
在这些请求中,我发现了很多身份验证密钥,我可以在控制台的其他调用中使用它们,毫无问题地模拟应用程序。
所以,现在我已经在移动应用程序中破解了一些 API,我的问题是:有没有办法保护移动应用程序中的 API?
我想知道一个安全层会限制每个“密钥”的请求数量。
我错了吗 ?我错过了什么吗?这是一个愚蠢的问题吗?
是否有一个Android等效的ios设备检查 https://developer.apple.com/documentation/devicecheck 或任何方式来验证这是你的unoctored apk进行api调用?
我有一款与 API 交互的手机游戏。我希望仅从该移动应用程序调用此 API 。它解释起来很简单,但另一方面,它的简单又使它变得混乱。
没有用户,因此没有用户凭据。这是一个从 API 请求图像的开放游戏。
我不想实施的事情:
HardcodedSecret/apikey/token 等 -> 没有任何内容必须是硬编码的One Time Password-> 无需通过短信、电子邮件、推送通知或任何用户交互进行 OTP。Device ID或Advertising ID -> 好的解决方案,但任何其他应用程序也会获取此 ID,然后调用我的 API。另外,任何攻击者都可以发送任何内容作为设备 ID,对吧?那么如何验证该设备 ID 是否是现有设备的真实标识符呢?游戏开发与Unity3D. API 由AWS API Gateway和组成Lambda。我正在考虑使用 AWSCognito作为身份验证服务器。
感谢您的想法!