Cognito 用户池 ID 和客户端 ID 是否敏感?

Are the Cognito User pool id and Client Id sensitive?

有谁知道 User Pool IdClient Id 是否敏感?目前我让他们坐在前端,只是想知道这是否危险。如果是,它们如何被利用?

不,他们不是。他们应该是 public。它们被利用的唯一方法是有人可以使用它们对您的用户池进行大量注册调用。但只要这些注册没有经过验证,这些就不会转换为活跃用户(除非您启用了用户自动验证)。这不是特定于 AWS 的问题。虚假注册是一件令人头疼的事情,即使没有使用 SignUp api 并且使用 PHP 后端进行注册,人们也会面临这个问题。面对这种情况的唯一方法是 email/phone 验证。

当然,如果您在用户池中禁用了注册,即只有管理员可以创建用户,那么这根本不是问题。

这些信息并不敏感,但如果一起使用,它们可能允许客户端将用户创建到您的 Cognito 用户投票中,因此可以访问您的应用程序。

对管理方法的请求需要 "userPoolId",它应该保存在您的后端。 Client/Normal请求通常使用"clientId",在同一个用户池下可以有多个请求。

总而言之,"userPoolId" 是您的敏感信息,不应在您的客户端中公开。

注意:Amplify.@auth 需要 userPoolId 和 clientId,这是他们的另一个安全故障,但是我没有看到他们在任何请求中公开 clientId。希望他们尽快解决这个问题。

ID token and Access token 由 Cognito 生成同时包含用户池 ID 和客户端 ID,这些值不可能被设计为私有的。