【发布时间】:2011-01-03 07:20:41
【问题描述】:
我是一名使用 PHP 编写登录脚本的初学者。这是我到目前为止的表单令牌声明:
$_SESSION["form_token"] = md5(rand(time (), true)) ;
该语句在用户表示他/她要登录后立即发出。
我有限的理解是token的目的是在唯一的时间点识别唯一的用户,并伪装表单token的信息。
然后一切都变得模糊。以下是我的 3 个未解决问题:
出于安全目的“检查”表单令牌的最佳时间是什么时候?
如何检查?
如果有的话,我什么时候“销毁”表单令牌? (IOW,表单令牌会在用户注销之前保持“活动”吗?
【问题讨论】:
-
仅供参考 MD5 有点受限,如果您需要生成随机字符串,我建议您改用它:$id = sha1(mt_rand());如果你使用 rand(),你只会得到 32,000 种可能的组合。