我的PHP codeigniter网站向用户发送3种类型的电子邮件,它们是html格式的,我希望在浏览器中查看此电子邮件链接选项。为HTML电子邮件创建安全的“在浏览器中查看电子邮件”链接
如何创建合理安全的链接?电子邮件的2本质上是敏感:
新注册:电子邮件显示他们的详细信息和激活链接
忘记密码:电子邮件显示的链接重置通过
只是做这样的事情就够了:
$code = sha1(mt_rand(10000,99999).time().$user_email);
$link = 'email/view/' . $code . '/' . $user_id . '/';
=> http://mysite.com/email/view/c0acc09c6d00b706e1e511e52f286b1859067047/213/
因此,认证将基于随机散列和他们的user_id完成。是否值得哈希用户ID呢?
我认为你在谈论2种不同的东西。 1)如何在浏览器中显示电子邮件(我从未见过的选项)以及2)如何在电子邮件中提供URL以验证用户身份。我认为后者是你真正想要实现的那个,我说得对吗? – Anthony 2012-03-30 01:58:42
使用'mt_rand()'没有任何参数。这将为您提供数十亿个可能的数字,而不仅仅是99999.您还可以通过使用'microtime()'而不是'time()'来获得更多不可预知的哈希值。这完全是为了增加可能的哈希数。 – kijin 2012-03-30 02:00:15
谢谢,我已经更新了sha1(mt_rand()。microtime()。$ user_email)); – Quadrant6 2012-03-30 02:10:07