我想在请求中发送机密数据(例如"密码"(时阻止它们。
我在前端使用React,在后端使用MongoDB。
事实上,我正在用一个用户的盐水和散列密码注册数据库,如下所示:
userSchema.pre('save', async function (next) {
if (!this.isModified('password')) {
next()
}
const salt = await bcrypt.genSalt(10);
console.log('this.password: ', this.password);
// password coming form Frontend is not still protected here, like '1234'
this.password = await bcrypt.hash(this.password, salt);
// password is protected like '$2a$10$gxNPkFvqRIFZPyMsB.Dmf.G52yQntT3LxJQHuteCaSZCpUZ0RPkdm'
})
但我也希望在途中保护敏感数据(例如,免受"中间人攻击"(。
那么,我应该如何实现受保护的用户密码发送,或者体验最好的方法是什么?
谢谢。
使用非对称加密。
生成公私密钥对,在前端用公钥加密密码,将密文发送到后端,在后端用私钥解密。