如果是在前端做校验,只向后端提交哈希值,那用户是不是可以强行设置弱密码?
如果在后端做校验,那就得发送原文,没有 https 的情况下密码又容易泄露
1
cwcc 2023-08-01 11:39:31 +08:00
关键词:非对称加密。
|
2
NessajCN 2023-08-01 11:41:13 +08:00
那你强制 https 呗...
|
3
echo1937 2023-08-01 11:41:16 +08:00 1
脱离 https ,讨论泄密没意义。
|
5
8355 2023-08-01 11:47:58 +08:00
2023 年了 https 还不是标配?
无论前端做还是后端不都应该上 https ? |
6
picone 2023-08-01 11:49:28 +08:00
前端校验。用户对自己的输入负责,自行设置弱密码对业务造成影响。
非对称加密就更好了,但都到这步了,为啥不上 HTTPS 呢? |
8
bthulu 2023-08-01 11:52:50 +08:00
前端校验, 弱密码才能方便用户. 安全性要靠自己来保证, 不要指望用户. 即便用户设置 123456 这样的密码, 也要能保证用户的安全. 可以配合用户常用 IP, 常用手机, 用户所在地, 用户大数据画像来确保用户安全, 不要靠强密码, 这会极大的降低用户体验.
|
9
cwcc 2023-08-01 11:55:58 +08:00 1
最简单的方案就是前端 js 里面带上公钥,用 JSEncrypt 直接加密传到后端用私钥解密就行了。其他复杂的各种认证、密钥交换算法如果有兴趣也可以研究一下。总之为了加密而加密行不通,系统总有薄弱点,但加密传输目前容易做到的应该就是非对称加密和 HTTPS 通信了。
|
10
GeruzoniAnsasu 2023-08-01 11:57:04 +08:00
@githmb 那种项目根本就不需要做设置密码的功能,管理员密码只允许物理机本地修改(开变更单进机房改)
|
11
liveoppo 2023-08-01 12:04:18 +08:00
通过 https 送到后端校验。尽量部署 https 。
|
12
thinkershare 2023-08-01 12:06:22 +08:00
没有 HTTPS ,你这种前端加密没啥意义。
|
13
deplivesb 2023-08-01 12:09:54 +08:00
安全性校验 ,我理解应该是比如密码位数,是否大小写等规则校验,这个东西不是前端就可以么?为啥还要给后端
|
14
adoal 2023-08-01 12:14:42 +08:00
@githmb 如果是内网项目,让甲方出台制度,用户必须签署“我草忒马的虽然心里不爽但是既然组织上规定弱密码造成的安全事故责任自负了那我就乖乖执行我承诺我不使用弱密码如果我欺骗组织就天打雷劈”协议。
|
15
adoal 2023-08-01 12:19:39 +08:00
世间安得双全法,不负如来不负卿。你有不想让 geek 用户绕过前端的需求,又有不发送明文的需求,又不用 https ,又嫌非对称加密“一个注册没必要搞这么多次请求吧”……想啥呢?
|
18
chenjia404 2023-08-01 12:23:24 +08:00 1
在前端做校验就够了,如果用户可以强行设置弱密码,那就说明他有一定的技术能力,就不用担心他的安全性问题了。
|
19
adoal 2023-08-01 12:27:38 +08:00 2
@githmb #9 说的不就是#1 的具体实现?然而你在#3 里对#1 表示没必要,又说#17 里回复我的#15 比哦啊哦是#9 是答案……这是啥姿势?
|
20
nuk 2023-08-01 13:36:02 +08:00
加个 2FA ,安全性直接加一百倍
|
21
villivateur 2023-08-01 13:39:09 +08:00
@githmb 保密项目和内网项目同样可以用 https 啊,自己内网生成一个 CA 证书就行了,内部设备都信任这个证书。
|
22
Masoud2023 2023-08-01 13:45:16 +08:00 1
看不懂这帖子到底再讨论什么。
前端校验一遍,发明文给后端,后端再校验一遍能死? 不上 https 怪前端? 已经 2023 年了,还搞什么 JSEncrypt ,是嫌 TLS 不好用是吗? |
23
kenvix 2023-08-01 13:46:50 +08:00
> 没有 https 的情况下
这种情况不应该发生 |
24
raysonx 2023-08-01 13:49:02 +08:00
前端加密没有意义,防不了中间人攻击。
|
25
sankooc 2023-08-01 13:53:36 +08:00
没有 https 的话 前端传的是哈希值还是别的都不一样吗
|
26
TaoLoading 2023-08-01 14:02:45 +08:00 1
不上 https 只带上公钥也不安全,即使是前端打包后的代码,密钥也是可以找出来的
|
27
chotow 2023-08-01 14:05:10 +08:00
前端做校验,并在 UI 层限制弱密码。
以哈希值的形式提交密码密到后端,可以避免后端环节中的明文泄漏(比如日志),并增强用户对服务的信赖度。 除非有不可抗拒因素,否则必须使用 HTTPS 。 |
28
dj721xHiAvbL11n0 2023-08-01 14:06:40 +08:00 1
那我问你,http ,你泄露了哈希值,我拿到不是一样能登录嘛?这有区别嘛?
|
29
dallaslu 2023-08-01 14:43:49 +08:00
密码的 hash 值如果被中间人截获,中间人随时可用此值进行认证,几乎等同于截获密码。若防止中间人截获,至少应该上 https ;再进一步,用非对称加密传输给服务器(当然公钥是否可信,会是另一个问题)。
检查弱密码,可以通过 hash 值碰撞测试。如果不用 hash 值,也不必传输密码原文,可在前端对密码进行随机变形,比如 abCDef123# 变成 hiJKlm456*,他们的安全性是近乎相等的。 |
31
NoOneNoBody 2023-08-01 14:54:37 +08:00
两端都要,前端检验格式,后端排重以及不当字符
|
32
lujiaosama 2023-08-01 14:54:50 +08:00 1
不用 https 前端花活再多都是白给. 我能想到的应用场景就是某些为了等保而等保的内网项目, 运维人员又不懂得怎么部署 https.
|
33
githmb OP @lujiaosama 你是懂的,哈哈
|
34
crystom 2023-10-25 15:53:07 +08:00
@x2420390517 不一样,很多用户在多个网站用一个密码
|