【发布时间】:2020-12-03 19:17:23
【问题描述】:
有谁知道 User Pool Id 和 Client Id 是否敏感?目前我让他们坐在前端,只是想知道这是否危险。如果是,如何利用它们?
【问题讨论】:
标签: amazon-web-services aws-cognito
有谁知道 User Pool Id 和 Client Id 是否敏感?目前我让他们坐在前端,只是想知道这是否危险。如果是,如何利用它们?
【问题讨论】:
标签: amazon-web-services aws-cognito
不,他们不是。他们应该是公开的。可以利用它们的唯一方法是有人可以使用它们对您的用户池进行大量注册调用。但只要这些注册没有经过验证,它们就不会被转换为活跃用户(除非您启用了用户的自动验证)。这不是 AWS 特定的问题。假注册是一件很头疼的事,即使没有使用 SignUp api 并且使用 PHP 后端进行注册,也会面临这个问题。面对这种情况的唯一方法是电子邮件/电话验证。
当然,如果您在用户池中禁用了注册,即只有管理员可以创建用户,那么这根本不是问题。
【讨论】:
Cognito 生成的ID token 和Access token 同时包含用户池 ID 和客户端 ID,这些值不可能被设计为私有的。
【讨论】:
这些信息不敏感,但如果一起使用,它们可以允许客户端在您的 cognito 用户投票中创建用户,因此可以访问您的应用程序。
对管理方法的请求需要“userPoolId”,它应该保存在您的后端。 Client/Normal 请求通常使用“clientId”,在同一个用户池下可以有多个。
总之,“userPoolId”是您的敏感信息,不应在您的客户端中公开。
注意:Amplify.@auth 需要 userPoolId 和 clientId,这是他们的另一个安全故障,但是我没有看到他们在任何请求中公开 clientId。让我们希望他们尽快解决这个问题。
【讨论】: