• Active Url 激活URL


    Active Url

    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生成机制你可以模拟出来的话。你就可以操作别人的帐号了



     

  • 相关阅读:
    大整数模拟
    MSSQL存储过程中获取记录集并循环操作一例
    about协议的妙用
    C#基础概念二十五问
    很完美的JS判断日期函数
    asp.net C# FileUpload 控件如何判断文件名的后缀
    c++中指针学习的两个绝好例子
    ASP.net性能优化总结
    C++指针
    JS中的undefined,null,"",0和false
  • 原文地址:https://www.cnblogs.com/lovebanyi/p/1717129.html
Copyright © 2020-2023  润新知