NodeClub两次输入的密码没必要到服务器校验吧
在服务器端进行两次输入的密码校验没必要吧,这个功能是防止用户不小心输错的,服务器有必要校验么,数据根本不需要传到服务器来。
代码:controllers/sign.js
if(pass != re_pass){
res.render('sign/signup', {error:'两次密码输入不一致。',name:name,email:email});
return;
}
22 回复
@saighost @jiyinyiyong @leizhongmin 三位,要搞清楚让用户输入两次密码是干嘛的,只是为了防止用户输错,而不记得密码。如果用户一定要更改浏览器设置或者用hack方式篡改数据,那是他自己的事。 虽然一个密码校验多少服务器资源,但我认为这种做法是没有必要的,没必要把的有的数据都交由服务器校验。 服务器只校验哪些数据?影响到数据唯一性真实性的,对数据有影响的数据才要校验。 服务器的资源很宝贵,要省着用。
说客户端数据不可信,这个也没错。但是也要想想到底是什么东西不可信吧? 考虑如果有一个修改密码的api,是不是也要让客户端传两个相同的密码?
所以服务器端验证密码复杂度是有必要的,但是验证两个密码是不是相同,就没必要了。
均衡存在万物之间,既要寻求简洁高效,又要寻求安全可行,说到底如果今后的密码修改为其他类型的时候,有可能只输入一次,不过目前来说,2次还是比较妥妥的,而且很多用户已经接受了这样的习惯,如果有更新更友好更安全高效的密码产生,否则不要随意便便用户习惯。