如何保护私有移动 API 的“创建新用户”操作?

Posted

技术标签:

【中文标题】如何保护私有移动 API 的“创建新用户”操作?【英文标题】:How to protect the 'create new user' action for a private mobile API? 【发布时间】:2016-04-20 12:42:54 【问题描述】:

我正在为移动应用开发私有 API。我计划使用 JSON Web 令牌保护和验证登录用户。

当用户认证并登录服务时,服务器会在响应中返回一个签名的 JWT。设备安全地存储此信息,并在每个后续请求中将其作为 HTTP 授权标头发送回。

到目前为止一切顺利。然而,我有点困惑的是:令牌是在创建帐户时为新用户生成的(即他们注册)。这个 API 端点(创建的 POST)是开放的,并且没有令牌验证(自然是因为它是新用户)。

如何确保创建新用户的 POST 请求仅获得移动应用的授权?换句话说,如果恶意用户发送 POST 来创建垃圾用户,我该如何识别呢?

API 通过 https。不过,即使我要求应用程序使用 API 密钥作为查询参数,也会将其暴露在网络上。我想我可以传入一个带有哈希 API 密钥/秘密的基本标头。

有什么方法可以安全地做到这一点?

【问题讨论】:

【参考方案1】:

编辑:How to protect the 'public' part of a REST service from spam?

【讨论】:

以上是关于如何保护私有移动 API 的“创建新用户”操作?的主要内容,如果未能解决你的问题,请参考以下文章

无需对移动应用进行用户身份验证即可保护私有 REST API 的最佳方法

如何创建唯一代码以邀请新用户加入移动应用程序中的群组

如何在不退出的情况下使用 Firebase API 创建新用户? [复制]

如何在 Android 中打印受 Auth0-JWT 保护的私有 API 端点 JSON 对象?

如何在 Devise 中手动创建新用户和用户会话?

Linux-root管理员创建新用户