🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[PHP-Casbin](https://github.com/php-casbin/php-casbin) 是一个强大的、高效的开源访问控制框架,它支持基于各种访问控制模型的权限管理。 `ABAC`是`基于属性的访问控制`,可以使用主体、客体或动作的属性,而不是字符串本身来控制访问。 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`类的定义: ```php $data1 = new \stdClass(); $data1->name = 'data1'; $data1->owner = 'alice'; $data2 = new \stdClass(); $data2->name = 'data2'; $data2->owner = 'bob'; ``` 然后使用决策器进行决策: ```php $e->enforce('alice', $data1, 'read'); // true $e->enforce('alice', $data2, 'read'); // false $e->enforce('bob', $data1, 'read'); // false $e->enforce('bob', $data2, 'read'); // true ```