会话安全?

d.m*_*mc2 8 php session

使用安全吗?

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)

谢谢,

And*_*ong 3

我很确定大多数主机中的 Session 只是文件系统的一个接口,即所有 Session 数据都存储在服务器的硬盘中,如果您查看phpinfo()输出,您可以查看 Session 数据的实际路径在哪里。

话虽如此,除非您将会话路径更改为 777,并且攻击者碰巧知道您托管应用程序的位置并具有登录权限,否则我认为这不是什么大问题。

这里更大的问题是保护您的 cookie,因为它是通过您的服务器和客户端来回传输的信息,攻击者可以利用它来冒充合法用户。