我有一个典型的Web应用程序表单身份验证过程,有两个步骤:
在转到第2步之前,我应该验证用户名和密码吗?或者我应该收集所有三位信息(用户名,密码和字符)并在最后检查它们?
我见过的大多数网站都会检查用户名和密码,如果他们不进行身份验证,请不要询问这些字符。另一方面,可以认为最后检查所有内容并且如果它们不匹配,则显示不能解释哪个位失败的错误消息将更安全。这样可以在简单的一步验证中显示较少的信息,例如显示“用户名或密码不正确”(未指定哪个)。
第二种方法的问题(除了对用户不太友好)是第2步要求在步骤1中获得有效用户,否则很难知道要求有效字符的秘密短语的长度(没有如果短语只有9个字符,请求第10个字符。应用程序还必须在两个步骤之间以安全的方式保留密码。
哪一个更好?我应该考虑第三种方法吗?