假设用户在具有电子邮件地址的站点上注册,该地址需要在接受用户注册之前先进行验证 .
一般方法是向提供的电子邮件地址发送电子邮件 . 然后,用户检查他/她的收件箱并单击一个链接,该链接将告知该站点该电子邮件地址是有效的 . 通常,链接中会嵌入某种代码,告诉网站它是否是对电子邮件地址的合法验证 .
我的问题是关于代码 . 实施它的最佳方法是什么?一些想法:
-
在网站中输入新地址时会生成随机字符串 . 该随机字符串存储在DB中,然后通过电子邮件发送给注册人 . 电子邮件中的链接将包含随机字符串作为URL的一部分 .
-
发送的电子邮件已经过哈希处理 . 这意味着不需要在数据库中保存任何内容,因为应用程序将知道如何取消此操作 . (我对这种方法的关注是,如果用户稍后将其电子邮件地址更改为他之前输入的内容,则哈希值将相同 . 不确定这是否会造成某种安全威胁 . )
-
其他一些方法?
我正在寻找这个问题的一般建议 .
2 回答
我每次都使用第一种方法
创建随机代码
将其存储在DB中
使用clickable.php?key = blabla等可点击链接将其邮寄给用户
在激活页面上,用户也可以手动输入
提交时比较密钥
激活用户
如果用户更改邮件地址返回1
第一,随机字符串,是最安全的(和AFAIK,最常见的)方式:它使得完全不可能恶意地对我没有收到电子邮件的电子邮件地址做事 .
此外,您可以在成功完成后删除随机字符串,清楚地表明该特定地址不再需要激活 .