Email Security – Best Policy for Allowing Clients to Change Email

authenticationemailSecurity

We are developing a web application with a fairly standard registration process which requires a client/user to verify their email address before they are allowed to use the site. The site also allows users to change their email address after verification (with a re-type email field, as well).

What are the pros and cons of having the user re-verify their email. Is this even needed?

EDIT:

Summary of answers and comments below:

  • "Over-verification" annoys people, so don't use it unless critical
  • Consider a "re-type email" field to prevent typos, but users can still copy/paste, rendering it moot.
  • Beware of overwriting known good data with potentially good data
  • Send email to old for notification; to new for verification
  • Don't assume that the user still has access to the old email
  • Identify impact of incorrect email if account is compromised

Best Answer

if you are going to allow your users to change an email address you need to verify the new email address and send a notification to the old email address. The verification of the new email is more optional, but since you verified the original address not validating the new is an inconsistency, that can turn known good information into potentially useless information. The email sent to the old address is for security reasons in case the account was compromised, so the user can be notified and take action to recover the account if necessary.

You could also require the user to click verification links sent to both emails in the case of an email change and lock the account until both are verified or your customer service is contacted. Doing something like this really hurts user friendliness and should only be used if your application is something that if compromised can cause significant monetary losses or physical danger.