gpt4 book ai didi

javascript - AWS Cognito 如何安全?

转载 作者:行者123 更新时间:2023-11-30 20:45:43 27 4
gpt4 key购买 nike

我尝试集成 AWS cognito 用户池,但我觉得它不再安全了。因为在登录中收到的 id token 包含用户池 id。使用该用户池 ID,任何人都可以访问用户详细信息列表。

示例 - 下面显示了我的 id_token 数据,我可以在 iss 字段中清楚地看到我的用户池 ID (us-east-1_i1SXXXXX)

enter image description here

因此,使用该用户池 ID,我可以检索列表用户,然后编辑任何用户详细信息。

检索用户详细信息 -

var AWS = require('aws-sdk');
var AWSCognito = require('amazon-cognito-identity-js');
var util = require('util');

var params = {
Username: '',
Password: '',
UserPoolId: 'us-east-1_i1SGXXXXX', // just paste id token user pool
ClientId: 'ZZZZZZZZZZ', // just random string
AWSRegion: 'us-east-1' //region
}

AWS.config.update({region: params.AWSRegion});

var poolData = {
UserPoolId : params.UserPoolId,
ClientId : params.ClientId
};
var userPool = new AWSCognito.CognitoUserPool(poolData);


var userData = {
Username : params.Username,
Pool : userPool
};
var cognitoUser = new AWSCognito.CognitoUser(userData);

var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();

cognitoidentityserviceprovider.listUsers({UserPoolId: params.UserPoolId}, function(err, data) {
if (err) {
console.log(err, err.stack);
} else {
console.log(data.Users);
}
});

最后您可以编辑用户详细信息 -

var AWS = require('aws-sdk');
var AWSCognito = require('amazon-cognito-identity-js');
var util = require('util');

global.navigator = () => null;

var params = {
Username: '',
Password: '',
UserPoolId: 'us-east-1_i1SGXXXXX',
ClientId: '',
IdentityPoolId: '',
AWSRegion: 'us-east-1'
}
AWS.config.update({
region: params.AWSRegion
});
var authenticationData = {
Username: params.Username,
Password: params.Password
};
var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
var params = {
UserAttributes: [{
Name: 'address',
Value: 'address updated'
}
],
UserPoolId: params.UserPoolId,
/* required */
Username: 'XXXXXXX' //add any user id where you retrieve from list of user code
};
cognitoidentityserviceprovider.adminUpdateUserAttributes(params, function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});

那么你的建议是什么。我在创建 idToken 时做错了什么吗?

最佳答案

如果您有 userpoolid,您不能就用户详细信息“询问”Cognito,因为:

用户池的访问权限由 AWS 的 IAM 管理(由您/管理员提供),因此您可能没有身份验证通过 IAM 强制执行用户池?!我非常怀疑。

显然,如果我的 web 编写的 web 应用程序可以访问用户池,那么我可以要求它做什么想要处理用户池。

此外,您的应用在用户群中的设置是什么?

关于javascript - AWS Cognito 如何安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48718381/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com