I'm building a php website with a limited number of users at all time (20 max). I've spend quite some time securing it and have done a lot of research on the topic.
I've run into a problem considering a secure password-reset-system. I'd like to use the most convenient way, that is sending an email to the user with an url that contains a token to reset the password. The token is bound to a certain user and is only valid for a certain amount of time. Alas this doesn't seem to be secure as email-traffic can be intercepted. I've been thinking of additional checks on the token, such as ip and browser (http_user_agent), but this too can be bypassed.
I could use a security question or link a code to the token that has to be given by the admin in order to use the token-url (is manageable because of the limited number of users), but I'd rather avoid that.
I've noticed that Facebook, Tumblr and probably many more use the convenient way of sending an email with an url without further security questions or such. Considering that security is one of the top priorities of these companies, how do they manage to make this process secure (I assume it is)? Are there any special security checks that they run? Or is the email-traffic-interception-security-leak a bit over-exaggerated?
Thanks in advance.