gpt4 book ai didi

security - 在 Web 应用程序中注册第一个管理员用户的最佳方式是什么?

转载 作者:行者123 更新时间:2023-12-05 05:07:16 25 4
gpt4 key购买 nike

假设一个新的 Web 应用程序正在部署到生产环境中。在企业系统中,通常会预先创建一个管理员用户,用于登录系统,然后创建其他管理员和用户。我想知道创建第一个 super 管理员用户的最佳方法是什么。我们可以在第一次运行时通过代码创建它,但这意味着至少开发团队中的某些人可以访问凭据(开发人员/devOps/运营)。有没有什么办法可以让除了系统的客户/ super 管理员之外没有人获得凭据?

最佳答案

我认为预先创建的路线是最好的选择。但另一种方法是在管理员注册逻辑中添加条件。通过询问假设的 super 管理员他将使用什么电子邮件,如果满足该条件,您应该能够将 super 管理员角色分配给他。假设您已经在数据库模型中为用户设置了某种角色属性,或者可能是一个成熟的 RBAC 系统(基于角色的访问控制)

(我假设语言是 javascript(express 和 mongoose),尽管有一种方法可以用其他语言实现它):

// request response cycle
async (req, res) => {
// destructure req body
const {name, email, password,} = req.body
try {
// check if user already exists
let user = await User.findOne({email})
if(user) {
return res.status(400).json({errors: [{msg: 'Invalid registration
details'}]})
}
// create new user in db
user = new User({
name,
email,
password,

})

// condition for assigning super admin role
if (email === 'super admin email address') {
role === 'super admin'
}

根据您构建应用程序的方式,可能性是无限的。我希望这会为您解决这个问题开辟思路。

编辑:一定要为密码创建一个哈希函数,这样一旦 super 管理员注册,密码就会立即被哈希化,因此无法访问。

关于security - 在 Web 应用程序中注册第一个管理员用户的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59262523/

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