如何进行会话固定



有人能解释一下会话固定是如何工作的吗?在我的本地主机服务器上,我上传了一个文件,代码是:

<?php
 session_start();
 if (!isset($_SESSION['count'])) $_SESSION['count'] = 0;
 else ++$_SESSION['count'];
 echo $_SESSION['count'];
?>

我在浏览器中设置了地址:http://localhost/sessiontest.php?PHPSESSID=1234它将从0写入开始,按下几次刷新按钮后,它将转到1,2,3,4,。。。在我以前读过的书和互联网主题中,有这样一句话:如果我在不同的浏览器或不同的PC中的浏览器中使用这个地址,它会显示第一个浏览器结束的数字mz。然而,当我在第二台电脑上输入这个地址时,它是从0开始的。

它是在Apache和PHP的更高版本中以某种方式得到了保护,还是我完全误解了这个主题?谢谢你的帮助!

我想你可能误解了。PHP使用PHPSSID来存储会话的ID。通常,该值存储在cookie中,但如果禁用cookie,也可以存储在url中。

如果你在一个浏览器上读取了url(或cookie)的值,你可以在另一个浏览器中使用url中的值来有效地接管该会话。这是因为PHP不跟踪任何信息,只是使用会话id来标识会话。

我想在您的情况下,cookie也是启用的,所以PHP使用存储的cookie而不是URL值。您可以尝试先删除cookie,完全禁用cookie并使用此url,也可以更改cookie的值。

相关内容

  • 没有找到相关文章

最新更新