如何在前端和后端之间的请求中发送我的秘密数据例如来自“中间人攻击”?

问题描述

我想在我的请求中发送它们时阻止我的秘密数据(例如“密码”)。

我在前端使用 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'
})

但我也想在途中保护敏感数据(例如免受“中间人攻击”)。

那么,我应该如何实现用户密码的发送受保护,或者最好的体验方法是什么?

谢谢。

解决方法

使用非对称加密。

生成公私钥对,在前端用公钥加密密码,将密文发送给后端,在后端用私钥解密。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...