URL令牌有效吗?

时间:2015-12-16 18:48:51

标签: php

我正在读这本书由Chris Shiflett撰写的Essential PHP Security,我在URL中遇到了令牌(Session Hijacking)。该书说:“更好的方法是在URL中传播令牌 - 这可以被认为是第二种形式的识别。

示例

<?php

$token = md5(uniqid(rand(),TRUE));

$url = array();
$html = array();

$url ['token'] = rawurlencode($token);
$html['token'] = htmlentities($url['token'], ENT_QUOTES, 'UTF-8');


?>

<a href="index.php?token=<?php echo $html['token'];?>">Click Here</a> 

点击“点击此处”后,网址现在有一个令牌

http://localhost/urltoken/index.php?token=55420e8dce399820ecf4dfa08cf0d5a0

我不明白的是服务器如何知道此令牌是否有效。

1 个答案:

答案 0 :(得分:2)

将令牌保存在数据库表中,该表具有引用用户表的外键以及与应用程序相关的任何其他表。当用户转到带有ng-参数的链接时,脚本会在此表中查找令牌。如果找不到,则令牌无效。

一个常见的例子是当您在网站上创建帐户时,它会向您发送一封电子邮件以验证该帐户。电子邮件中的链接将包含一个引用该帐户的令牌,当您单击该帐户时,该脚本会将该帐户标记为已验证。密码重置电子邮件的工作方式类似。