【发布时间】:2015-12-07 03:50:05
【问题描述】:
如标题所示,
环境:密码已经在数据库中散列,使用HTTPS协议连接
我的问题很简单,通过 HTTPS,我看到一些网站使用 SSL,但在提交表单时也在前端(客户端浏览器)进行密码加密。
需要吗?
在我看来,因为网站使用 SSL。无需在前端(客户端浏览器)中加密密码。因为无论前端(客户端浏览器)做什么,黑客也可以通过使用库(客户端浏览器导入 javascript 散列算法)来加密和发送令牌。即使放盐也少了点,这只是黑客加密它的额外步骤。
除非盐来自其他方式,而不是来自同一来源(来自服务器的页面渲染)。示例:来自移动设备,然后使用 otp 作为盐即可解决。
否则我认为加密在前端(客户端浏览器)中没有用。
我说的对吗?或者我错过了什么......
【问题讨论】:
-
旁注:您可能在不寻常的意义上使用“前端” - 更常见的是使用“客户端/浏览器” -> 前端(服务器端渲染逻辑) -> 后端(数据库/服务)。
-
任何客户端加密/解密算法和密钥都将公开可用,这意味着加密密码可以比使用私钥(年)更容易(秒)解密。如果连接被破坏,除了嗅探器的轻微烦恼之外,几乎没有安全收益。 SSL 使用私钥进行 RSA 加密,您应该能够假设 SSL 连接可以安全地传递数据(例如明文密码)。 仍然加密/散列您的密码,只需在服务器端进行。
-
@PaulS。 “仍然加密/散列您的密码”是指让 SSL 进行加密就足够了吗?
标签: javascript ssl encryption https password-encryption