1

我的 Android 应用程序对我的后端进行了一些 REST 调用。我希望只有并且只有我的应用程序被授权调用端点。

我打算使用 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 请求

上面的逻辑在这个规模上会起作用吗?有没有其他方法可以确保发布到我的端点的数据来自我的应用程序并且仅来自我的应用程序?

4

1 回答 1

4

是的,如果您经常调用 attest(),您将受到限制。除了速率限制之外,您不希望每隔几秒调用一次,因为您可能会开始注意到不利的性能影响(API 调用的计算量很大,而且速度不快)。

您描述的逻辑很好,但我建议仔细考虑您需要保护哪些特定端点操作。通常,将 SafetyNet Attestation 与特定的高价值操作(例如登录或支付交易)一起使用是合适的。对您发出的每个 POST 请求都这样做可能不会带来什么增量收益。

根据您的用例,文档对如何使用 API 结果提出了额外的建议:

理想情况下,您应该使用 SafetyNet Attestation API 作为反滥用系统的一部分的额外深度防御信号,而不是应用程序的唯一反滥用信号。

于 2016-12-16T22:26:43.513 回答