PHP复杂的基于角色的访问控制列表
我已经制作了实现这个自定义ACL系统所需的数据库和php代码.现在我必须’授权’当前用户,这就是我需要你的建议的地方.
该系统基于对系统用户和系统模块的灵活权限分配.它还有一些预定义的,比如用户组,也可以制作完全自定义的组.全局规则也可以应用于ACL之上,但它的优先级低于分配了权限的组或用户. 更好地描绘它: 预定义组: >有限(无法访问) 以下是访问级别(名称/值对): >不允许/ 0 注意:’允许’在’禁止’上具有更高的优先级,因此如果您在组A上有用户X’禁止’,但在某个访问中有B组’允许’,那么他最终会’允许’.另一方面,如果用户X通过成为“管理员”组的成员而具有“完全访问权限”,但如果他只是在某个访问权限上“拒绝”,则他最后没有访问权限,这意味着“拒绝”优先于’允许’. 在顶层你可能有类似这样的东西: >“Administrator”*“1”,表示管理员对系统具有完全访问权限 我的问题是如何处理这类检查?想象一下,我们有一个简单的授权机制.我们在$_SESSION [‘user’]中会有一些索引,比如$_SESSION [‘user’] [‘login’] = true;和$_SESSION [‘user’] [‘id’] = $row [‘user_id’],对吗? 现在,如果你想在你的脚本上实现这个机制,你将如何做到这一点? 我可能会首先检查全局访问规则.然后我会查看用户是否已登录.如果是,只需获取所有组,然后查看权限表以查看为其组分配了哪些权限及其用户ID,然后将其存储在用户会话中.然后,当模块说这是我需要运行的权限时,我会查看用户是否有足够的权限访问所请求的模块. 看起来很复杂!任何帮助或建议都非常感谢! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- zend-framework – Zend Framework – 我们应该在哪里放置自
- PhpStorm中的快捷键移动到HTML结束标记
- php – 与Imagick以及phmagick的问题:Postscript委托失败/
- php – 使用PDO Prepared Statements插入密码哈希
- 华为面试题:识别有效的ip地址和子网掩码并分类 C语言源码
- Fatal Error: Allowed memory size of 123456789 bytes ex
- 解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
- php中计算时间差的几种方法
- PHP多人模块开发原理解析
- PHP imagedestroy():释放图像资源