使用安全吗?
If ($_SESSION['authenticated'] == true) {
/////Show secure page
}
Run Code Online (Sandbox Code Playgroud)
有人可以去改变存储会话变量的位置,使其$ _SESSION ['authenticticated'] =为真吗?
用户的$ _SESSION ['id'] =与其索引ID相同.我怎样才能使这个更安全?有人可以去改变id值并模仿另一个用户吗?
以下方法是否是确保安全的正确方法?
$_SESSION['random_check'] = (random number)
Run Code Online (Sandbox Code Playgroud)
并且还将其存储在我的数据库中的列中,并且每次都存储
If ($_SESSION['authenticated'] == true && $_SESSION['random_check'] == random_number ) {
/////Then show secure page
}
Run Code Online (Sandbox Code Playgroud)
谢谢,
我很确定大多数主机中的 Session 只是文件系统的一个接口,即所有 Session 数据都存储在服务器的硬盘中,如果您查看phpinfo()输出,您可以查看 Session 数据的实际路径在哪里。
话虽如此,除非您将会话路径更改为 777,并且攻击者碰巧知道您托管应用程序的位置并具有登录权限,否则我认为这不是什么大问题。
这里更大的问题是保护您的 cookie,因为它是通过您的服务器和客户端来回传输的信息,攻击者可以利用它来冒充合法用户。