需要密码才能更改Cognito电子邮件?

时间:2019-01-22 14:18:31

标签: amazon-cognito

我可以在不使用Cogito API的情况下(通过JavaScript函数)提供密码的情况下,为登录用户请求更改电子邮件:

export function* updateEmail(username: string, email: string) {
    const cognitoUser = getCognitoUser(username);
    const attributes: ICognitoUserAttributeData[] = [{
        Name: 'email',
        Value: email,
    }];

    return yield new Promise((resolve, reject) => {
        cognitoUser.getSession((error: Error, session: {}) => {
            if (error) {
                reject(error);
            }
            cognitoUser.updateAttributes(attributes, (err, result) => {
                if (err) {
                    reject(err);
                }
                resolve(result);
            });
        });
    });
}

这可以允许恶意行为者更改使计算机未锁定的登录用户的密码:

  • 请求更改电子邮件
  • 确认新电子邮件
  • 请求更改密码
  • 更改密码

如何阻止这种攻击?

是否可以让Cognito要求密码才能请求更改电子邮件?

1 个答案:

答案 0 :(得分:0)

更改电子邮件地址时,无法使Cognito要求输入密码。您必须自己将更改电子邮件地址表格放置在额外的登录步骤或类似步骤之后