修改密码表单中的"请再次确认新密码"字段需要一起传到后端吗

2020-03-10 10:41:53 +08:00
 LoremIpSum

个人感觉不需要,因为前端已经校验过了,后端再做一次 equlas 判断感觉没什么必要,但是看到有些开源项目也把这个字段传到后端做校验?请问把这个再次确认传到后端起到什么作用?

8115 次点击
所在节点    信息安全
73 条回复
freakxx
2020-03-10 14:04:25 +08:00
@Steps #17

他已经狗头保命了哈哈哈哈
LokiSharp
2020-03-10 14:08:50 +08:00
个人感觉。。。没必要“请再次确认新密码”
dndx
2020-03-10 14:09:09 +08:00
不需要传两遍。实际上很多网站注册或者找回密码都不需要再次确认了,密码输错的毕竟比较低,这样体验反而更好。
Airon
2020-03-10 14:15:52 +08:00
不需要传,后端只是保存密码后续登录时校验,再次确认只是为了用户确认密码是否是期望值。个人认为其实注册的时候让密码可见就可以省略再次输入了。
julyclyde
2020-03-10 14:16:01 +08:00
前端兴旺年代啊新产生的问题

古代的时候,整个 form 都会提交的,根本不需要问
MeteorCat
2020-03-10 14:17:00 +08:00
不需要,那个只是为了防止用户误操作或者输入错误再次请求
Hstar
2020-03-10 14:32:45 +08:00
@julyclyde 古代这个词笑到我了,哈哈哈哈
kasper4649
2020-03-10 14:40:36 +08:00
刚去看了一眼 Twitter 和 Facebook 的,都把确认密码放在参数里了,至于后端用不用就不知道了。
efaun
2020-03-10 14:42:59 +08:00
@delectate #9 生物识别是最不靠谱的了
neilq
2020-03-10 14:56:50 +08:00
技术角度来讲是不需要的,但是不怎么信任客户端,前端知道自己做了验证,但是作为后端没法确认前端是否做了验证,又或者是有输入性 bug ?另外,也不会给服务器什么压力,多几个字节?本来也没几个人会一直改密码,恶意攻击就是另一回事了,少几个字节人家也能攻击。
neilq
2020-03-10 15:01:20 +08:00
开发很多时候不只是跟技术做斗争,而是在和人做都在,很多防御性变成思路,有一部分是为了,出 bug 时,便于扯皮
darkbluever
2020-03-10 15:04:27 +08:00
需要考虑前端的代码是否能够正常运行,考虑极端情况比如用户可以在浏览器禁用 JS。如果前端代码在禁用 JS 的场景下通过提交表单把数据发到后端,这样就需要在后端做校验。
KyonLi
2020-03-10 15:08:46 +08:00
有用,万一攻击者只伪造了密码而忘记伪造确认密码,不就防下来了嘛
jzmws
2020-03-10 15:10:07 +08:00
这个是一个好问题, 首先明确一点的是,所有前端输入的都是不友好的, 重复输入前端完全可以做校验 . 作为一个后端程序员,我会让前端传. 所有数据后端校验才是安全!
whoami9894
2020-03-10 15:12:42 +08:00
输两次只有一个目的:防止用户手误。前端校验一下两个 input 值相同就 OK 了。后端再校验一次的意义是啥? 咋还扯到 mitm 了
icyalala
2020-03-10 15:17:39 +08:00
用 "不信任客户端" 或者 "中间人攻击" 做理由的,你就算输入两遍,人家中间人两个都改掉,那不还是没卵用?
数据安全是通信来保证的,输两遍不是为了安全,只是避免用户自己手误。
ryanlid
2020-03-10 15:19:39 +08:00
不用
HeiXiaoBai
2020-03-10 15:21:18 +08:00
设置重复密码的原因不是前端密码显示为*,然后怕用户输入密码错然后要重复输入一遍么,传到后端要用来干啥。
no1xsyzy
2020-03-10 15:22:45 +08:00
原想说不需要的,想了想似乎是需要的……
考虑前端(不仅仅 Web )如何校验密码无非这几种:1、当框内内容发生改变时; 2、当键盘被按下时; 3、定时。
注意前两种事件在 Web 端非常不友好:1 有可能意外不触发,2 触发机会额外高,容易导致卡顿。注意,尤其各种输入法( Windows 下御三家姑且有密码框关输入法,但操作系统太杂)。无论是 3 还是 1+3 还是 2+debounce/throttle,都会引入 “异步”。爱因斯坦广义相对论大家都知道吧,一旦时间上解耦了,一致性就是虚构的。
至少,为什么不假装自己很愚蠢,用个正常的 form 来提交呢……
no1xsyzy
2020-03-10 15:26:04 +08:00
@darkbluever NoScript 用过一段时间我都给忘了……
@kasper4649 我记得 twtr 和 fb 都可以关 JS 运行…… 大概是这个原因

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

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

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

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

© 2021 V2EX