我正在阅读 Chris Shiflett 的这本书 Essential PHP Security,我在其中遇到了在 URL 中使用 token ( session 劫持)的情况。该书说“更好的方法是在 URL 中传播一个 token - 可以将其视为第二种形式的标识。
示例
<?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>
一旦我点击“点击这里”,该 url 现在就有了一个标记
http://localhost/urltoken/index.php?token=55420e8dce399820ecf4dfa08cf0d5a0
我不明白的是服务器怎么知道这个 token 是否有效。
最佳答案
将 token 保存在具有引用用户表和与应用程序相关的任何其他表的外键的数据库表中。当用户转到带有 token
参数的链接时,脚本会在此表中查找 token 。如果找不到,则 token 无效。
一个常见的例子是当您在网站上创建一个帐户时,它会向您发送一封电子邮件来验证该帐户。电子邮件中的链接将包含一个指向该帐户的 token ,当您单击它时,脚本会将该帐户标记为已验证。密码重置电子邮件的工作方式类似。
关于php - URL token 有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34319826/