1

我应该对 Zend_Acl 使用白名单还是黑名单方法?我的意思是拒绝向每个人提供任何和所有资源并为每个角色编写每个允许案例 [黑名单] 或允许所有资源并为每个角色编写每个拒绝关注 [白名单]

4

4 回答 4

5

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

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

像这样的东西:

$acl = new Zend_Acl();
$acl->deny();
$acl->addResource($resource);
$acl->addRole($role);
$acl->allow($role, $resource, $access);
于 2010-09-27T11:02:43.840 回答
3

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

于 2010-10-12T12:44:34.467 回答
1

除非有任何事情困扰您去做相反的事情,否则您应该始终做任何需要较少努力来实施的事情。

于 2010-09-27T12:15:24.993 回答
0

由于您甚至没有提及您想要实现的确切目标,因此任何人都无法给出一个好的答案。最合适的解决方案将取决于您的具体用例,因此请提供更多信息或自行决定最佳解决方案。

于 2010-09-27T11:07:32.037 回答