当我实现密码重置功能时,我通常不会包含有关是否找到用户的信息性消息,因为我一直认为它会导致用户名枚举。所以而不是显示:
Account with email "test@test.com" not found.
显示一条模棱两可的消息,例如:
Please check your email for instructions on how to reset your password.
无论是否找到帐户。
这是矫枉过正还是一个好的做法?
当我实现密码重置功能时,我通常不会包含有关是否找到用户的信息性消息,因为我一直认为它会导致用户名枚举。所以而不是显示:
Account with email "test@test.com" not found.
显示一条模棱两可的消息,例如:
Please check your email for instructions on how to reset your password.
无论是否找到帐户。
这是矫枉过正还是一个好的做法?
这是OWASP 推荐的当前最佳实践。但经常被忽略的一件事是返回值应该是相同的——页面的布局和底层 HTML 代码应该是相同的。<!-- Failed password -->如果您可以打开页面源并查看评论,或者<!-- Unknown email address -->- 我在实时站点中看到了这些,仅提供相同的消息是不够的。