当有人在网站上用他们的电子邮件地址注册时,他们通常会被要求通过点击他们发送到的电子邮件地址中的链接来验证或确认他们的电子邮件。订阅或取消订阅邮件列表也一样。电子邮件验证/确认安全
可用性明智,这是伟大的。这是非常快速和容易的事情,我想不出任何会打败它的东西。
我不确定自己是否在推翻事物,但我只是想看看我是否遗漏了任何东西或者误判了任何事情。
所以据我所知电子邮件验证的目的 /确认是
- 为了确保电子邮件地址是正确的
- 要发送到该地址确保电子邮件可阅读并接受
- 为了确保电子邮件地址确实属于谁的尝试注册
随着CURR的人只需一个他们点击链接的流行实现,并立即验证电子邮件,有人可能只是强制验证链接并绕过这整个步骤。
只是访问verify.php?code=YOURBESTGUESSHERE
并尝试各种不同的代码。
攻击者现在可以进行以下剥削:
- 从我的邮件列表退订一堆人
- 一堆人加入到我的邮件列表中没有他们的同意伤了我的生意,因为他们可能对我的内容不感兴趣,他们可能会认为我是垃圾邮件并且生意不好
- 有人可以通过检查验证页面上的响应来寻址地址(例如,如果响应是“[email protected]”已经验证“左右)
- 有人可以制造假账户,而不需要具有实际工作电子邮件地址
我不知道后者的好处是什么,似乎这将是更容易,只需创建一个罚球为了这个目的,我只是想把它放在那里完成。
我的问题:
- 我错过任何其他目的或剥削电子邮件验证/确认的?
- 我是否应该为电子邮件验证添加安全层,例如验证码或时间延迟以防止暴力破解?
- 我应该问除复位代码以外的其他信息吗?像用户名或电子邮件地址了吗?或者安全问题类型的东西,或者他们在注册时输入的另一条信息?
这整件事情的最佳实践是什么,需要付出多大的担心和努力?风险与收益/安全与可用性...?
也许你应该问这是关于http://security.stackexchange.com的具体问题? – SilverlightFox