加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP复杂的基于角色的访问控制列表

发布时间:2020-12-13 16:47:17 所属栏目:PHP教程 来源:网络整理
导读:我已经制作了实现这个自定义ACL系统所需的数据库和php代码.现在我必须’授权’当前用户,这就是我需要你的建议的地方. 该系统基于对系统用户和系统模块的灵活权限分配.它还有一些预定义的,比如用户组,也可以制作完全自定义的组.全局规则也可以应用于ACL之上,
我已经制作了实现这个自定义ACL系统所需的数据库和php代码.现在我必须’授权’当前用户,这就是我需要你的建议的地方.

该系统基于对系统用户和系统模块的灵活权限分配.它还有一些预定义的,比如用户组,也可以制作完全自定义的组.全局规则也可以应用于ACL之上,但它的优先级低于分配了权限的组或用户.

更好地描绘它:

预定义组:

>有限(无法访问)
>基本用户
>高级用户
>管理员
>访客(定制组的样本)

以下是访问级别(名称/值对):

>不允许/ 0
>允许/ 1
>拒绝/ 2
>如果拥有者/ 3允许

注意:’允许’在’禁止’上具有更高的优先级,因此如果您在组A上有用户X’禁止’,但在某个访问中有B组’允许’,那么他最终会’允许’.另一方面,如果用户X通过成为“管理员”组的成员而具有“完全访问权限”,但如果他只是在某个访问权限上“拒绝”,则他最后没有访问权限,这意味着“拒绝”优先于’允许’.

在顶层你可能有类似这样的东西:

>“Administrator”*“1”,表示管理员对系统具有完全访问权限
>“访客”*“0”,表示访客不得进行任何操作

我的问题是如何处理这类检查?想象一下,我们有一个简单的授权机制.我们在$_SESSION [‘user’]中会有一些索引,比如$_SESSION [‘user’] [‘login’] = true;和$_SESSION [‘user’] [‘id’] = $row [‘user_id’],对吗?

现在,如果你想在你的脚本上实现这个机制,你将如何做到这一点?

我可能会首先检查全局访问规则.然后我会查看用户是否已登录.如果是,只需获取所有组,然后查看权限表以查看为其组分配了哪些权限及其用户ID,然后将其存储在用户会话中.然后,当模块说这是我需要运行的权限时,我会查看用户是否有足够的权限访问所请求的模块.

看起来很复杂!任何帮助或建议都非常感谢!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读