NodeClub两次输入的密码没必要到服务器校验吧
发布于 3年前 作者 romboo 1763 次浏览

在服务器端进行两次输入的密码校验没必要吧,这个功能是防止用户不小心输错的,服务器有必要校验么,数据根本不需要传到服务器来。

代码:controllers/sign.js

if(pass != re_pass){
  res.render('sign/signup', {error:'两次密码输入不一致。',name:name,email:email});
  return;
}
23 回复

万一由于某某原因,客户端的校验没能运行,而且提交上来的两个密码都不一样,应该以哪个为准?

还是干脆不用输入两遍密码?

浏览器 JS 难道有这么容易出错, 不大信

客户端再健壮,服务端都必须验证的。

我也觉得不需要

有时候,js是有可能会被禁用的。

@saighost @jiyinyiyong @leizhongmin 三位,要搞清楚让用户输入两次密码是干嘛的,只是为了防止用户输错,而不记得密码。如果用户一定要更改浏览器设置或者用hack方式篡改数据,那是他自己的事。 虽然一个密码校验多少服务器资源,但我认为这种做法是没有必要的,没必要把的有的数据都交由服务器校验。 服务器只校验哪些数据?影响到数据唯一性真实性的,对数据有影响的数据才要校验。 服务器的资源很宝贵,要省着用。

不是所有数据都要校验,得考虑这个数据对你有没有用,服务器的资源是宝贵的,别什么都收

@saighost 论坛回复功能有不少 jQuery, 禁用是极端了, 不大可能有

@romboo 没这么复杂吧. CNode 注册用户才多少, 验证密码也多不到哪去.

这样行不行,先是客户端校验,不一致就返回错误,不需要用到服务器。如果一致了,服务器再校验一次,这样是不是会好点儿。

一般都是这么个流程吧,在提交时候验证,就算是禁掉了js,也可以直接提交到服务器进行验证

@jiyinyiyong 嗯,说着是设计思路,不能因为用户小就忽略嘛,呵呵

@romboo 其实这点优化个人觉得没必要。反正服务端一次性也要验证那么多的域,多验证一个域,没多大关系。

@romboo 保证数据不出错.

纯猜测:

  • 确实没有必要
  • nodeclub只是玩具项目吧,懒得在客户端js写。

没必要, 这种验证交给前段就行了, 服务器只保存第一个密码, 第二个验证的忽略

…客户端数据绝对不可信啊…这个概念真的木有么…

说客户端数据不可信,这个也没错。但是也要想想到底是什么东西不可信吧? 考虑如果有一个修改密码的api,是不是也要让客户端传两个相同的密码?

所以服务器端验证密码复杂度是有必要的,但是验证两个密码是不是相同,就没必要了。

均衡存在万物之间,既要寻求简洁高效,又要寻求安全可行,说到底如果今后的密码修改为其他类型的时候,有可能只输入一次,不过目前来说,2次还是比较妥妥的,而且很多用户已经接受了这样的习惯,如果有更新更友好更安全高效的密码产生,否则不要随意便便用户习惯。

不需要。。如果js都被禁用了,论坛的很多功能都不能正常使用了。何况这的人多少都是搞技术的,不应当考虑js被禁用的情形吧?

个人觉得确实不需要

这里是在讨论“是不是没必要到服务器校验”

回到顶部