可以通过 HTTPS 发送纯文本密码吗?

信息安全 tls 验证
2021-08-13 12:40:50

我理解为什么在将密码保存到数据库之前应该对密码进行加盐和哈希处理,但我的问题是是否需要在浏览器端对其进行哈希处理,或者仅通过 HTTPS 发送纯文本密码被认为是安全的。

如果没问题,是否有任何文件可以用来向我的客户证明系统是安全的?如果不是,最佳实践是什么?

3个回答

通过 HTTPS 发送“明文”密码是标准做法。密码最终不是明文,因为客户端-服务器通信是根据 TLS 加密的。

在以 HTTPS 发送密码之前加密密码并没有多大效果:如果攻击者得到了加密密码,他们可以简单地使用它,就好像它是实际密码一样,服务器不会知道其中的区别。它提供的唯一优势是保护对多个站点使用相同密码的用户,但它不会使您的站点更安全。

通过 HTTPS 从浏览器向 Web 服务器发送密码是标准做法。密码在发送时通过 HTTPS 进行加密。请参阅https://stackoverflow.com/questions/962187/plain-text-password-over-https

当用户在 HTML<input type=password ...>字段中键入密码时,它通常会按原样发送到服务器,即没有任何散列或加盐。这就是为什么在没有 HTTPS 的情况下永远不应该这样做的原因。

但是如果你的 HTTPS 是可靠的,这应该没问题。这是大多数 Web 应用程序所做的。