【问题标题】:Implementing ACL for my PHP application为我的 PHP 应用程序实现 ACL
【发布时间】:2010-12-11 07:10:06
【问题描述】:

我的房地产 PHP 应用程序有以下用户组,

管理员, 版主 代理

我想为以下用户指定以下权限。

管理员 - >

  • 可以创建版主,
  • 可以创建代理,
  • 可以插入属性,
  • 可以更新属性,
  • 可以删除属性

因此管理员将拥有所有权限,简而言之,这里的管理员将是超级管理员

我想将有限的权限分配给版主并因此分配给代理。

我对如何为此创建数据库以及如何在我的 PHP 应用程序中实现它感到困惑。

谢谢

【问题讨论】:

    标签: php acl access-control


    【解决方案1】:

    听起来您将需要一个基于角色的访问控制系统。开发一个不是 确实是一项微不足道的任务,正如已经建议的那样,找到一个框架或现成的类 这份工作值得一开始。

    Role Based Access Control

    http://www.tonymarston.net/php-mysql/role-based-access-control.html

    http://www.sqlrecipes.com/database_design/fine_grained_role_based_access_control_rbac_system-3/

    http://www.sitepoint.com/forums/showthread.php?threadid=162027

    您应该创建一个表,您必须在其中定义所有类型的角色。

    还有一张供用户使用的桌子

    通过链接两个表将不同的角色与不同的用户相关联。 还有这样的事情......

    【讨论】:

    • 使用像 cakephp 或 zend 这样的框架。他们有内置的 ACL 组件库,也很容易学习
    【解决方案2】:

    我过去这样做的方法是在数据库中创建一个用户表,该表具有访问级别(管理员、主持人和代理)。

    然后,如果您有菜单系统,请实施检查以查看哪些链接需要哪些权限...管理员将看到所有链接,版主只会看到他/她应该看到的链接,而代理只会看到什么他们应该看到的。

    此外,在您可能希望限制用户的页面上,您还需要检查用户访问级别。如果他们通过了,他们将看到页面,如果没有,他们将被重定向或需要弹出一个 javascript 错误。

    访问级别之类的东西将其存储在 cookie 中可能会对您有所帮助,因为您可以减少对数据库的调用。

    希望这会有所帮助, 迈克

    【讨论】:

    • ...你的意思是一个cookie,他们可以随意修改它以提高他们的访问级别?
    • True Cookie 有点不安全,但是您可以通过检查数据库来验证。我必须构建的大多数应用程序都是针对内部员工的,除了查看其他页面之外,并没有什么收获。更不用说所有内容都被记录了,所以即使你绕过了一些检查,它也会记录你的页面点击。我很高兴它有帮助。我希望继续在这个论坛上提供帮助。
    • 您可以在发布 cookie 之前对其进行签名,以确保完整性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    相关资源
    最近更新 更多