用户注册时的密码安全性校验应该在前端还是后端完成?

2023-08-01 11:35:29 +08:00
 githmb

如果是在前端做校验,只向后端提交哈希值,那用户是不是可以强行设置弱密码?

如果在后端做校验,那就得发送原文,没有 https 的情况下密码又容易泄露

2903 次点击
所在节点    程序员
34 条回复
villivateur
2023-08-01 13:39:09 +08:00
@githmb 保密项目和内网项目同样可以用 https 啊,自己内网生成一个 CA 证书就行了,内部设备都信任这个证书。
Masoud2023
2023-08-01 13:45:16 +08:00
看不懂这帖子到底再讨论什么。

前端校验一遍,发明文给后端,后端再校验一遍能死?

不上 https 怪前端?

已经 2023 年了,还搞什么 JSEncrypt ,是嫌 TLS 不好用是吗?
kenvix
2023-08-01 13:46:50 +08:00
> 没有 https 的情况下

这种情况不应该发生
raysonx
2023-08-01 13:49:02 +08:00
前端加密没有意义,防不了中间人攻击。
sankooc
2023-08-01 13:53:36 +08:00
没有 https 的话 前端传的是哈希值还是别的都不一样吗
TaoLoading
2023-08-01 14:02:45 +08:00
不上 https 只带上公钥也不安全,即使是前端打包后的代码,密钥也是可以找出来的
chotow
2023-08-01 14:05:10 +08:00
前端做校验,并在 UI 层限制弱密码。
以哈希值的形式提交密码密到后端,可以避免后端环节中的明文泄漏(比如日志),并增强用户对服务的信赖度。
除非有不可抗拒因素,否则必须使用 HTTPS 。
dj721xHiAvbL11n0
2023-08-01 14:06:40 +08:00
那我问你,http ,你泄露了哈希值,我拿到不是一样能登录嘛?这有区别嘛?
dallaslu
2023-08-01 14:43:49 +08:00
密码的 hash 值如果被中间人截获,中间人随时可用此值进行认证,几乎等同于截获密码。若防止中间人截获,至少应该上 https ;再进一步,用非对称加密传输给服务器(当然公钥是否可信,会是另一个问题)。

检查弱密码,可以通过 hash 值碰撞测试。如果不用 hash 值,也不必传输密码原文,可在前端对密码进行随机变形,比如 abCDef123# 变成 hiJKlm456*,他们的安全性是近乎相等的。
githmb
2023-08-01 14:46:13 +08:00
@adoal 所以说我问的是懂的人,不是你这种人啊。人家一眼就能看出来我是嫌交换证书麻烦,还不安全。
NoOneNoBody
2023-08-01 14:54:37 +08:00
两端都要,前端检验格式,后端排重以及不当字符
lujiaosama
2023-08-01 14:54:50 +08:00
不用 https 前端花活再多都是白给. 我能想到的应用场景就是某些为了等保而等保的内网项目, 运维人员又不懂得怎么部署 https.
githmb
2023-08-01 14:59:02 +08:00
@lujiaosama 你是懂的,哈哈
crystom
2023-10-25 15:53:07 +08:00
@x2420390517 不一样,很多用户在多个网站用一个密码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/961461

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX