在前端和后端之间发送请求时如何防止我的秘密数据(例如来自“中间人攻击”)?
Posted
技术标签:
【中文标题】在前端和后端之间发送请求时如何防止我的秘密数据(例如来自“中间人攻击”)?【英文标题】:How to prevent my secret data (e.g. from 'man in the middle attacks') while sending them in a request between Frontend and Backend? 【发布时间】:2021-08-11 11:09:53 【问题描述】:我想在我的请求中发送我的秘密数据(例如“密码”)。
我在前端使用 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'
)
但我还想在途中保护敏感数据(例如免受“中间人攻击”)。
那么,我应该如何将用户密码发送为受保护的,或者最好的经验方式是什么?
谢谢。
【问题讨论】:
只使用 https。 【参考方案1】:使用非对称加密。
生成公私密钥对,前端用公钥加密密码,发送密文到后端,后端用私钥解密。
【讨论】:
以上是关于在前端和后端之间发送请求时如何防止我的秘密数据(例如来自“中间人攻击”)?的主要内容,如果未能解决你的问题,请参考以下文章