如何检查会话每页是否有效?

时间:2011-08-20 23:48:30

标签: php

因此,如果创建了登录/注册系统,那么当用户登录时,用户将被重定向到另一个仅限成员的页面(member.php),我会将登录信息存储在用户的会话中。 / p>

当用户导航到成员页面时,在允许他查看内容之前,我想确保用户名/密码有效,并且用户有效登录。我如何确保用户当他/她到达会员页面时有效登录,对我来说似乎使用:

if (!isset($_SESSION['username']))
{
    die("You aren't allowed to access this page");
}

会起作用,但是我想确保它是安全的,对我来说,它似乎不够安全(因为如果有某种方式欺骗会话,他们所要做的就是包括任何一种文本作为用户名。)

我真的不知道,那么如何检查用户是否应该访问该页面?

3 个答案:

答案 0 :(得分:1)

会话变量存储在您的服务器上,而不是像cookie一样存储在用户计算机上。因此,用户无法修改$_SESSION['username']。您必须真正对会话保持警惕的是会话劫持(用户获取另一个登录用户的会话ID,并使用它作为该用户构成)

答案 1 :(得分:0)

如果会话ID cookie知道有效值,而不是存储在服务器上的会话数据本身,则可以欺骗会话ID cookie。

因此,他们可能不只是用某个用户名“发送给你”会话数据。

如果他们可以访问 登录的人的浏览器,他们可能会窃取他们的SESSID( 存储在客户端上),但是-IP会话可以有所缓解。

答案 2 :(得分:-1)

使用salt加密密码cookie / session var,或者不时地对db进行检查。