php-casbin 是一个强大的、高效的开源访问控制框架,它支持基于各种访问控制模型(rbac abac acl)的权限管理。
ABAC 是 基于属性的访问控制,可以使用主体、客体或动作的属性,而不是字符串本身来控制访问。
推荐:《PHP教程》
ABAC 的官方实例如下:
[request_definition] r = sub, obj, act [policy_definition] p = sub, obj, act [policy_effect] e = some(where (p.eft == allow)) [matchers] m = r.sub == r.obj.owner
这是 r.obj 类的定义:
DBShop开源商城系统,使用PHP语言基于Laminas(Zendframework 3) + Doctrine 2 组合框架开发完成。可定制、多终端、多场景、多支付、多货币;严谨的安全机制,可靠稳定;方便的操作管理,节约时间;清晰的权限分配,责任分明;便捷的更新处理,一键搞定;丰富的插件市场,扩展无限。
立即学习“PHP免费学习笔记(深入)”;
$data1 = new \stdClass(); $data1->name = 'data1'; $data1->owner = 'alice'; $data2 = new \stdClass(); $data2->name = 'data2'; $data2->owner = 'bob';
然后使用决策器进行决策:
$e->enforce('alice', $data1, 'read'); // true
$e->enforce('alice', $data2, 'read'); // false
$e->enforce('bob', $data1, 'read'); // false
$e->enforce('bob', $data2, 'read'); // true










