[英]PHP login system help needed
我是 PHP 的新手,我在 PHP 方面没有太多经验。我正在尝试开发基于分层结构的登录系统。我考虑了实现该系统的各种方法,但我认为最好从有经验的人那里获得一些想法像你这样的程序员。我在下面解释了我的需求想法。
我需要创建 3 个不同的登录层,具有不同的权限。Eg.Member、Staff、Admin。这里 admin 应该拥有系统的几乎所有权限,成员应该有一些权限,而工作人员需要有更多权限。请问可以吗给我一些想法来实现我的系统。嗯,它可以很复杂,我需要保护它。
我是否必须为不同的用户使用不同的 function 文件,或者可以使用具有不同权限的相同文件集。
谢谢你。
一般来说,您需要做的是首先确定用户登录时的角色。通常这是通过在数据库中查找用户来完成的。
然后,将他们的角色隐藏在 session: php 会话中
之后,当您要显示一些只有管理员应该拥有的选项时(例如)检查 session 以确保他们具有所需的角色。 您应该在实际执行操作时再次检查角色,以防止攻击者通过伪造请求执行他们不应该执行的命令。
此外,这一切都应该通过 SSL 连接 (HTTPS) 来完成,以帮助防止攻击者通过检查管理员的请求标头并使用该 Z21D6F40CFB511982E5744 构建自己的请求来劫持另一个用户的 session
(我也是一个 PHP 初学者,但这应该涵盖了实现基于角色的安全身份验证系统的大部分常规内容。希望它有所帮助。)
对于不同的用户,不必有不同的 function 文件。 有一张表,其中包含有关谁是员工、成员和管理员的详细信息。 在显示页面时,只需在显示之前检查每个项目的权限,在执行每个 function 期间还要检查用户是否具有执行 function 所需的权限。
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; }
}
使用逐位运算,您可以为某些访问情况很常见的人设置预定义级别。 而当您有人需要访问一种类型的信息而不是另一种类型的信息时,您可以只使用他们需要的访问级别来设置他们的帐户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.