我可以在不使用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要求密码才能请求更改电子邮件?
答案 0 :(得分:0)
更改电子邮件地址时,无法使Cognito要求输入密码。您必须自己将更改电子邮件地址表格放置在额外的登录步骤或类似步骤之后