这个问题不是关于安全性或“如何正确实施”相关问题,而是关于预检查输入值的概念。
作为第一种方法,我尝试实现以下过程(请注意,在每个check if
语句中,如果为 false,该方法返回一个标识符值,否则算法继续)
Save entered values in oldPW, newPW1, newPW2
check if oldPW is correct (Ajax request)
check if newPW1 == newPW2
check if length of newPW1 is >=6
check if newPW1 contains legal characters
check if newPW1 contains required characters (like at least one uppercase char etc.)
这种方法引起了问题,我认为它与异步 ajax 请求有关。我返回一个特定的标识符整数,并调用类似的方法
switch(checkPasswords(oldPW, newPW1, newPW2){
case 0:
// alert something suitable
break;
case 1:
// alert something suitable
break;
//(...)
case n-1:
// alert something suitable
break;
case n:
// everything is ok, change password
break;
}
最后检查旧密码是否更干净?或者甚至直接在尝试更改密码时(假设新的所需密码满足要求)并因此只有一个 ajax 请求?共同的概念是什么?