验证/签署对我的 API 的请求来自我的应用程序并且没有被欺骗(React Native)

Posted

技术标签:

【中文标题】验证/签署对我的 API 的请求来自我的应用程序并且没有被欺骗(React Native)【英文标题】:Verifying/signing that a request to my API came from my app and was not spoofed (React Native) 【发布时间】:2019-11-04 08:15:08 【问题描述】:

是否可以验证对我的服务器的 API 调用来自我的应用程序,并且没有被其他 HTTP 请求客户端或类似客户端欺骗?我在后端使用带有 Node 的 React Native,并且正在使用 JWT 系统进行身份验证。

上下文:某些功能仅对应用检测到位于特定位置的用户解锁。我能想到的唯一解锁这些功能的系统非常薄弱 - 前端向服务器发送带有用户位置的请求,如果位置合适,则解锁功能。显然,这个请求很容易被欺骗,除非我可以以某种应用程序独有的方式对它们进行签名,并且难以进行逆向工程。

任何其他方法将不胜感激(例如,从发送请求的 IP 地址检测用户的位置?)

【问题讨论】:

【参考方案1】:

您可以使用您组织的签名证书。

【讨论】:

嘿 Komara - 任何人都可以手动将 "sentFrom": "app" 添加到 HTTP 请求中,因此这无济于事。我会对任何难以伪造的安全签名证书方法感兴趣。在前端隐藏密钥可能不会奏效,因为它可以被发现。

以上是关于验证/签署对我的 API 的请求来自我的应用程序并且没有被欺骗(React Native)的主要内容,如果未能解决你的问题,请参考以下文章

如何让我的 C# API 响应来自我的 React 应用程序的 POST 请求? (CORS问题)

如何签署 OKEx API 请求?

Google Cloud Api Gateway 是不是提供请求签名和验证 sdk,例如使用 Signature 4 签署 AWS API Gateway 请求?

签署认证请求

Rails — 签署 OAuth1 请求

使用React和NextJS保护API身份验证请求