我的Android应用程序使一些REST调用到我的后端。我希望只有我的应用程序有权调用端点。Android和SafetyNet,以确保对API的调用仅来自我的应用程序
我打算使用Google的SafetyNet归档。
1) My app ask my server fora random nonce
2) My app ask for an .attest()
3) My app receive the JWT
4) My app call one of my endpoint by providing the JWT
5) My server calls Google server to verify the JWT is correct
6) If yes, the call is processed, rejected otherwise..
我的问题是:是否有.attest()的速率限制? 我的应用程序将每2秒或3秒秒发出几个POST请求
上述逻辑是否按照这种规模工作?有没有其他方法可以确保发布到我的端点的数据来自我的应用程序,并且只有我的应用程序?
这是我认为是的。我的使用案例中的'问题',即我的API只有1个端点(post)和我的所有用户发布的数据将在共同映射上共享。因此,如果没有safetyNet之类的东西,对于某人开始发布虚假数据来说,这是非常容易的。猜猜我的另一种方法是不要每秒钟都调用POST端点,但每隔几分钟左右就会调用一次,而我只是将数据汇总并批量发送。 – Johny19
@ Johny19在您的应用开始发布地图数据之前是否需要登录步骤?即使不是这样,您也许可以发出令牌来响应初始的“开始”请求(第一次打开该应用程序,该应用程序受SafetyNet证明保护),您可以在内存中保存该请求并将其包含在随后的数据帖子中。 我会告诫你,SafetyNet Attestation本身并不是一个神奇的反滥用API,所以这本身可能无法解决你所设想的所有问题。 –