首頁 > 後端開發 > php教程 > 用户通过邮箱注册后的激活,安全性高的处理方案?

用户通过邮箱注册后的激活,安全性高的处理方案?

WBOY
發布: 2016-06-06 20:50:04
原創
1253 人瀏覽過

正常情况下的步骤:
1、进入注册页
2、验证邮箱正确性 3、生成邮箱账号激活码code(自加密)
4、发送至注册邮箱的激活邮件,包含激活URL
5、点击激活URL,判断生效
6、激活成功,跳转至登陆页面

问题:
1、以上步骤是否完善?
2、激活码code一般包含哪些内容?
3、如果注册邮箱不是注册人本身拥有的,那收到激活邮件的邮箱拥有者点击后,是否也可以实现激活?

回复内容:

正常情况下的步骤:
1、进入注册页
2、验证邮箱正确性 3、生成邮箱账号激活码code(自加密)
4、发送至注册邮箱的激活邮件,包含激活URL
5、点击激活URL,判断生效
6、激活成功,跳转至登陆页面

问题:
1、以上步骤是否完善?
2、激活码code一般包含哪些内容?
3、如果注册邮箱不是注册人本身拥有的,那收到激活邮件的邮箱拥有者点击后,是否也可以实现激活?

SegmentFault注册目前使用的基本就是你说的这个流程

  1. 这个流程是完整的
  2. code只是一个哈希值,以它为key应该在你的存储系统中找到一个激活信息,当然为了安全期间这个哈希code要够长,而且碰撞性要比较低才可以,一般32位的md5值可以满足要求
  3. 这个风险是存在的,因此你要在注册邮件中说明“如果此邮件不是由你触发的,那么请忽略它”之类的话语,当然还要给这类注册链接设置一个过期时间,一般1到3天较为妥当,这样可以尽量避免误触发的情况

流程大体都一样的。

我现在是这么做的:

<code><?php $url_prefix = 'http://account.domain.com/active?';
$timestamp = time();

$sign = sha1($uid.$timestamp.'AUTH_KEY');

$url = $url_prefix.='&time='.$timestamp.'&sign='.$sign;

</code></code>
登入後複製

如果不放心,那就搞复杂一些--在激活页面提供登陆渠道: 在邮箱中点链接之后进入激活页面,忽略cookie之类的信息,让用户登陆一次,根据用户名、密码和激活码三个来激活账号

还有两个部分你漏掉了。

1、每次有新用户注册,记录并验证 IP、MAIL 地址注册次数。 2、发激活 MAIL 后记录此地址发信时间。

目的只有一个,就是防止有人用激活邮件做为攻击别人邮箱的工具。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板