asks the user for multiple pieces of hard data that should have been
previously collected
send the password reset information to some
out-of-band side-channel
such as a (possibly different) email address or an SMS text number, etc. to be used in Step 3.
Step 2) Verify Security Questions
application verifies that each piece of data is correct for the given username
If anything is incorrect, or if the username is not recognized, the second page displays a generic error message such as “Sorry, invalid data”. If all submitted data is correct, Step 2 should display at least two of the user’s pre-established personal security questions, along with input fields for the answers.
Avoid sending the username as a parameter
Do not provide a drop-down list
server-side session
user's email account may have already been compromised