zoukankan      html  css  js  c++  java
  • 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生成机制你可以模拟出来的话。你就可以操作别人的帐号了



     

  • 相关阅读:
    mysql 5.7开启sql日志的配置
    Apache显示目录列表及icons目录的问题
    WebGL学习笔记二——绘制基本图元
    java上传文件类型检测
    binlog
    vs2015下C4819该文件包含不能在当前代码页(936)中表示的字符问题解决
    WebGL学习笔记一
    vs2015 debug时出现 C2039“cout”: 不是“std”的成员
    spring boot实现切割分片上传
    springboot自定义类@Resource注入为null的问题
  • 原文地址:https://www.cnblogs.com/lovebanyi/p/1717129.html
Copyright © 2011-2022 走看看