Zend_Acl白名单VS黑名单?

时间:2010-09-24 21:07:45

标签: php zend-framework zend-acl

我应该使用Zeel_Acl的白名单或黑名单方法吗?我的意思是拒绝向每个人提供任何和所有资源,并为每个角色[黑名单]写下每个允许案例或者允许所有资源并为每个角色写下每个拒绝照顾[白名单]

4 个答案:

答案 0 :(得分:5)

不需要指定每个被拒绝的角色。

首先,您应该将所有角色定义为已拒绝。之后,为每个角色设置允许的访问资源。因此,您未声明为资源允许的每个角色都将被自动拒绝。

类似的东西:

$acl = new Zend_Acl();
$acl->deny();
$acl->addResource($resource);
$acl->addRole($role);
$acl->allow($role, $resource, $access);

答案 1 :(得分:3)

我正在使用白名单方法。这意味着只有在检查给定角色的权限后,才会将denyAll作为启动策略和资源的授予访问权限。我认为这是一种更安全的做法。在相同的情况下,您可以根据大多数资源选择一个而不是另一个。例如,如果您的大部分网站都是公共的,请从allowAll开始,并且只是拒绝访问x资源。这可能会限制ACL树的增长。

答案 2 :(得分:1)

除非任何事情困扰你做相反的事情,否则你应该总是做任何需要付出更少努力的事情。

答案 3 :(得分:0)

既然你甚至没有提到你想要实现的目标,那么任何人都无法给出一个好的答案。最合适的解决方案将取决于您的具体用例,因此要么提供更多信息,要么自己决定什么是最佳解决方案。

相关问题