php - 使用 RBAC 很难实现 Symfony 2 安全性吗?

标签 php symfony yii

我来自 Yii 1.1.x,我已经成功地为一个应用程序实现了角色,例如,检查 document.metadata.edit 的访问权限,它是 document.metadata.administrator 权限。

现在我正在阅读很多关于 Symfony 2 的资料,但不明白是否可以这样做。

我看到了 ACL,但它说您最多只能定义 30-32 条规则,具体取决于系统:

You can define up to 32 base permissions (depending on your OS PHP might vary between 30 to 32). In addition, you can also define cumulative permissions.

我也在数据库中保存角色,但在 Symfony 中它似乎保存在配置文件中。

在 Symfony 2 中,角色可以在数据库中动态创建,添加到成员中,然后在代码中 checkin 吗?还是更难实现?

在我的第一个应用程序中,一个常见的事情是给定一组在代码中检查的预定义低级别权限,您可以创建自己的角色并将这些权限添加到该角色。

我想我必须制作一个包来管理它,或者已经存在一个?

非常感谢。

最佳答案

对于简单的基于角色的配置,您可以从查看 Voters 开始和 Hierarchical Roles .根据经验,您几乎不需要 Symfony ACL——它们比简单的投票器复杂得多,只有非常特殊的用例才能充分发挥 Symfony ACL 的潜力。

如 Symfony 选民页面所述:

In Symfony, you can check the permission to access data by using the ACL module, which is a bit overwhelming for many applications. A much easier solution is to work with custom voters, which are like simple conditional statements.

关于php - 使用 RBAC 很难实现 Symfony 2 安全性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29903672/

相关文章:

php - 在 PHP 中执行外部程序的有效方法?

symfony - Shopware 6 后端 Controller 路径

php - 如何使用 Symfony 将参数传递给 Controller ​​?

php - 未捕获的 PHP 异常 Doctrine\ORM\ORMException : "Unknown Entity namespace alias ' AppBundle'.“

php - 使用 CActiveRecord 获取列的总和

javascript - 地理定位 API - 等待获取位置

javascript - 如何在 yii activeform 的 ajax 参数上传递额外的数据内容?

javascript - 如何强制 IE 在其浏览器窗口中将两个 div 框并排放置?

php - wordpress 无法访问管理部分和网站,因为主题不存在

php - 从 ZF2 登录 Facebook 和 Twitter