在服务器端进行两次输入的密码校验没必要吧,这个功能是防止用户不小心输错的,服务器有必要校验么,数据根本不需要传到服务器来。
代码:controllers/sign.js
if(pass != re_pass){
res.render('sign/signup', {error:'两次密码输入不一致。',name:name,email:email});
return;
}
万一由于某某原因,客户端的校验没能运行,而且提交上来的两个密码都不一样,应该以哪个为准?
还是干脆不用输入两遍密码?
客户端再健壮,服务端都必须验证的。
我也觉得不需要
@saighost @jiyinyiyong @leizhongmin 三位,要搞清楚让用户输入两次密码是干嘛的,只是为了防止用户输错,而不记得密码。如果用户一定要更改浏览器设置或者用hack方式篡改数据,那是他自己的事。 虽然一个密码校验多少服务器资源,但我认为这种做法是没有必要的,没必要把的有的数据都交由服务器校验。 服务器只校验哪些数据?影响到数据唯一性真实性的,对数据有影响的数据才要校验。 服务器的资源很宝贵,要省着用。
不是所有数据都要校验,得考虑这个数据对你有没有用,服务器的资源是宝贵的,别什么都收
这样行不行,先是客户端校验,不一致就返回错误,不需要用到服务器。如果一致了,服务器再校验一次,这样是不是会好点儿。
一般都是这么个流程吧,在提交时候验证,就算是禁掉了js,也可以直接提交到服务器进行验证
@jiyinyiyong 嗯,说着是设计思路,不能因为用户小就忽略嘛,呵呵
@romboo 其实这点优化个人觉得没必要。反正服务端一次性也要验证那么多的域,多验证一个域,没多大关系。
@romboo 保证数据不出错.
纯猜测:
- 确实没有必要
- nodeclub只是玩具项目吧,懒得在客户端js写。
没必要, 这种验证交给前段就行了, 服务器只保存第一个密码, 第二个验证的忽略
…客户端数据绝对不可信啊…这个概念真的木有么…
说客户端数据不可信,这个也没错。但是也要想想到底是什么东西不可信吧? 考虑如果有一个修改密码的api,是不是也要让客户端传两个相同的密码?
所以服务器端验证密码复杂度是有必要的,但是验证两个密码是不是相同,就没必要了。
均衡存在万物之间,既要寻求简洁高效,又要寻求安全可行,说到底如果今后的密码修改为其他类型的时候,有可能只输入一次,不过目前来说,2次还是比较妥妥的,而且很多用户已经接受了这样的习惯,如果有更新更友好更安全高效的密码产生,否则不要随意便便用户习惯。
不需要。。如果js都被禁用了,论坛的很多功能都不能正常使用了。何况这的人多少都是搞技术的,不应当考虑js被禁用的情形吧?
个人觉得确实不需要
这里是在讨论“是不是没必要到服务器
校验”