需要PHP登录系统帮助


PHP login system help needed

我是PHP新手,对PHP没有太多经验。我正在尝试开发一个基于分层结构的登录系统。我考虑过实现该系统的各种方法,但我认为最好从像你这样有经验的程序员那里获得一些想法。我在下面解释了我的需求想法。

我需要用不同的能力制作3个不同的登录层。例如,会员,职员,管理员。在这里,管理员应该拥有系统上几乎所有的特权,会员应该有一些,职员需要更多的特权。你能给我一些实现我的系统的想法吗?嗯,它很复杂没关系,我需要它的安全性。

我应该为不同的用户使用不同的功能文件,还是可以使用具有不同权限的同一文件集。

谢谢。

一般来说,您需要首先确定用户登录时的角色。通常,这是通过在数据库中查找用户来完成的。

然后,将他们的角色隐藏在一个会话中:php会话

之后,当您要显示一些只有管理员才应该在会话中检查的选项时(例如),以确保他们具有所需的角色。您应该在实际执行操作时再次检查角色,以防止攻击者通过伪造请求来执行他们不应该执行的命令。

此外,这一切都应该通过SSL连接(HTTPS)完成,以帮助防止攻击者通过检查管理员的请求标头并使用该会话ID构建自己的请求来劫持另一个用户的会话。

(我也是一个PHP初学者,但这应该涵盖了实现基于角色的安全身份验证系统的大部分常规内容。希望它能有所帮助。)

没有必要为不同的用户拥有不同的功能文件。有一张表格,里面有关于谁是员工、成员和管理员的详细信息。当显示页面时,只需在显示前检查每个项目的权限,在执行每个功能时,还需检查用户是否有执行该功能所需的权限。

class level
{
    const UNCLASSIFIED = 1;
    const CONTROLLED = 2;
    const RESTRICTED = 4;
    const SENSITIVE = 8;
    const CONFIDENTIAL = 16;
    const SECRET = 32;
    const TOPSECRET = 64;
    const CODEWORD = 128;
    const MEMBER = 63; // Everything up to SECRET.
    const STAFF = 127; // Everything up to TOPSECRET.
    const ADMIN = 255; // Everything.
    private $level = NULL;
    public function __get($property) { return $this->$property; }
    public function __set($property, $value) { return $this->$property = $value; }
}

使用位操作,您可以为一些访问情况常见的人设置预定义级别。然而,当你有人需要访问一种类型的信息,而不是另一种类型时,你可以按照他们需要的访问级别设置他们的帐户。