如何验证请求是否来自特定 Web 应用


How to verify that the request is from a specific web app

所以我有一个用于我的(javascript)Web应用程序的Web API。该应用程序包装在Cordova中,并在iOS和Android上分发。

我希望限制数据访问(防止第三方使用我的API)。但是我该怎么做呢?我不要求(也不希望)用户创建一个帐户,因此应用程序本身必须以某种方式验证它是发送请求的应用程序,而不是其他人。

但是怎么做呢?

我希望限制数据访问(防止第三方使用我的API)。但是我该怎么做呢?

应用本身必须以某种方式验证它是发送请求的应用,而不是其他人。

但是怎么做呢?

你所要求的是不可能的。这也是一个要解决的错误问题。

延伸阅读:客户端真实性不是服务器的问题

你不能100%确定,但你可以让逆向工程师为它工作。

    使用
  • TLS AO 他们无法轻松地使用嗅探器观察您的协议
  • 不要只使用单个 API 密钥,而是使密钥成为通过应用程序传播的各种值以及实际用户数据的函数
  • 考虑使用服务器发送的 TLS 密钥作为 API 密钥功能的一部分,这样如果它们减轻 TLS 的 TLS,一切都会中断
  • 在 API 中使用无意义的字段名称
  • 频繁推送更改 API 系统的更新