我正在尝试理解 php 中的会话。据我了解,在基本登录系统中,会话的工作方式如下:在页面 exampledomain.com/login.php 上:
if (password_verify($_POST['user_password'], $result->password_hash)) {
//write user data into PHP SESSION
$_SESSION['user_name'] = $_POST['user_name'];
}
然后在只有登录用户才能查看的页面上,我检查:
if (isset($_SESSION['user_name'])) {
//do something
}
现在我不明白的是,如果一个黑客在他自己的服务器(hackerdomain.com)上做这样的事情,假设他知道一个用户名:
session_start();
$_SESSION['user_name'] = 'Test';
<form method="post" action="exampledomain.com/page-only-logged-in-users-can-view.php" name="loginform">
<input type="submit" name="login" value="Login" />
</form>
现在他在 $_SESSION['user_name'] 中设置了一个值,这样他即使不需要密码也可以登录。我对这次会议的事情感到非常困惑。我阅读了 php 文档,但我仍然不明白。