AWS Cognito调用forgotPassword时不存在用户返回异常响应
关于Amazon Cognito不存在用户调用
forgotPassword()的响应说明 Cognito不会给不存在的用户发送任何验证码短信或邮件,你看到的返回结果是它的安全防护机制:
- 这是Cognito的默认行为,目的是防止攻击者通过
forgotPassword()接口枚举用户池中的有效用户名、邮箱或手机号。如果不存在用户时直接返回错误,攻击者就能反复尝试不同账号,判断哪些是真实存在的,进而发起针对性攻击。 - 返回的
CodeDeliveryDetails是伪装内容:Destination字段是随机生成的掩码格式,并非用户池里真实存在的邮箱或手机号,Cognito并没有实际发送任何信息。 - 后续调用
confirmPassword()时,Cognito会真正校验用户名和验证码的有效性,不存在的用户会在这一步返回错误,你可以在该环节对用户给出准确提示。
内容的提问来源于stack exchange,提问作者Lovro
相关产品推荐
相关产品推荐

