现在的位置: 首页 > 综合 > 正文

Active Url 激活URL

2012年11月14日 ⁄ 综合 ⁄ 共 812字 ⁄ 字号 评论关闭

Active Url
中文名:激活URL
简介: 当用户访问这个连接后会产生一些效果, 比如激活它的帐号,登录,取回密码. 广告点击数等.

例子:如何设计取回密码
当我们的用户丢失密码后,我们一般是要有一个地方让用户取回蜜码的.然后因为我们的密码一般是不可逆向.
所以如果我们无法将他的密码直接发给他.

然后有的人的就直接设计了这样的一个方式: 当用户点击取回密码的时候,我们直接生成一个密码.并且将密码直接保存到数据库,然后通过邮件(或其它的媒价,短信)发给可信的用户.
这里面存在什么问题呢. 就是其它用户可以利用这个来进行 拒绝服务攻击. 如果哪个用户取得了该用户的邮箱. 然后他点击取回密码.
这样你就直接把密码给了. 实际他应该是一个事务,只有等它真正看到哪封邮箱并且点击了我们的连接后,新密码才应该生效.或者哪个连接是一个可以修改的密码的连接,

2.哪个连接还必须限制一次有效. 就是当它用完一次后.就不能再次使用,不然的话就会造成每次使用,如果别人把你的修改密码的url给
拷走了.他就可以一直修改你的密码了.

 

如何设计一个ActiveUrl呢

ActiveUrl表结构
ID,
MemberID,
IsActive
ActiveTime,
MD5STR

MD5Str是如何生成的呢,这是一个

MD5(MemberID|Time|Rnd str|...|) 里面的构造是由你自己来的。包括会员的id 现在的时间啊,一个随机字符串,最好是用GUID

并且把这个预先存到activeUrl里。然后传给用户的的Url就可能是 ID=xxx&str=md5STR

如果验证成功了。就执行你的操作了。
比如激活帐号,允许修改密码。

哪这边有什么问题呢?如果哪个RndStr并不是真正随机(计算机是伪随机的)哪么就会被人家猜到。别人就有可能生产跟你一样的url了。

这边同样包括SessionID的机制。如果SessionID生成机制你可以模拟出来的话。你就可以操作别人的帐号了

 

【上篇】
【下篇】

抱歉!评论已关闭.