小编Ric*_*son的帖子

General/Phalcon - ACL和数据库存储

背景

我目前正在研究Phalcon应用程序.应用程序本身相对简单,但我将其用作学习更高级概念和技术的工具.

我已经抛弃了我的自制ACL(访问控制列表)解决方案,并且在Phalcon中提供了丰富的ACL.

这个问题更具概念性,因为我对实施任何解决方案都有信心.

问题是:"你在哪里存储ACL的信息?"

可能解决方案

我目前有一个静态数组,我填写了各种操作和它们的访问级别.

我觉得这有点限制,并且可能通过数据库存储更好地服务.

我可以使用位掩码来指示允许访问各种资源的用户角色,或者可能是最低级别.

我遇到的另一个问题是它是分层的(在某种程度上),但可能存在多个角色 - 权限略有不同.

eg. 
Admin has all roles of captain, secretary and user.
Captain has all the roles of a user and the ability to pick players.
Secretary has all the roles of a user and contact the opponent's secretary.
Captain and secretary both have the ability to email players.
Run Code Online (Sandbox Code Playgroud)

想象一下,如果你愿意的话,它有点像维恩的权限.

高速缓存

下一个问题是,每次访问数据库都会增加性能开销,所以我想缓存它会有意义.

然后会出现问题,如何使缓存无效(计算机科学中只有两件事情......)...也许可能存在一个数据库字段,其中包含ACL的md5哈希值,并在页面上进行了检查-load,查看是否需要重新加载ACL信息.

database security acl caching phalcon

5
推荐指数
1
解决办法
956
查看次数

标签 统计

acl ×1

caching ×1

database ×1

phalcon ×1

security ×1