如何确定API是否仅被指定的应用程序访问?

时间:2018-06-27 13:58:34

标签: android api security authorization safetynet

说,我有一个API /api/send-otp,该API以电话号码为输入并将otp发送到用户的电话号码。现在,此API无法进行身份验证,因为成功调用/api/confirm-otp后会生成身份验证令牌。

如何确保/api/send-otp调用仅来自授权的 android 应用,而不来自任何脚本/客户端。

PS:我无法在apk中嵌入任何哈希逻辑,因为可以对其进行反向工程。 Google(安全网)提供了某些东西吗?任何相关的文档/实施链接都将有所帮助。

1 个答案:

答案 0 :(得分:0)

  

如何确保/ api / send-otp调用仅来自授权的android应用,而不来自任何脚本/客户端

一种简单的方法是传递诸如app_version之类的指标参数,并在服务器端进行检查。如果不存在,请取消验证请求。

或者,您可以使用旧的Google Play服务GoogleAuthUtil

  

您使用可通过Google Play服务获得的GoogleAuthUtil类来检索称为“ ID令牌”的字符串。您将令牌发送到后端,后端可以使用该令牌快速廉价地验证发送该令牌的应用程序以及谁在使用该应用程序。

Verifying Back-End Calls from Android Apps

此外,还有另一种方法,即this security blog

中提到的Google登录