为何设置验证码的有效期?

luofeiyu
  • 1.5k

已经知道了md5不可以逆。

有一个简单的token产生办法
$token = md5($username.$password.$regtime);
1.既然你不可以逆,为何token仅仅24小时有效?
产生的验证链接
register/active.php?verify=".$token."'

2.我知道token是不包含slash符号的 空格的,为何激活的时候,代码需要这样写
$verify = stripslashes(trim($_GET['verify']));
stripslashes没有必要哈
trim也没有必要哈

回复
阅读 2k
3 个回答
邓锋
  • 273
✓ 已被采纳

第一个问题:

  • 设置一个有效期,就是为了保存行为的一致性。举个最简单的例子来说,当 A 使用账号密码创建了一个账号,A 这个时候不想激活了,这个时候B通过一些方式拿到了这个token,间接性的激活了怎么办。其实,有效期设置与否并无关系,重要的是尽量规避一些特殊情况

第二个问题:

  • 其实也差不多,规避意外行为,假如你使用token进行查询的时候直接套用sql语句不就造成sql注入了?

你想想session为什么设置有效期!

我记得以前有人说过这么一句话,验证码是我们的最后一道防线,如果不设置有效期,那这最后一道防线岂不是也要倒了?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏