如何保护cakePHP中所有控制器中的所有管理操作

时间:2010-05-17 07:24:44

标签: security cakephp routes admin cakephp-1.3

我正在使用cakePHP v 1.3在Windows(XAMPP)上开发一个应用程序。

大多数控制器都是在启用管理路由的情况下烘焙的。我想通过登录页面保护每个控制器的管理操作。我怎么能这样做而不重复呢?

该问题的一个解决方案是“我在每个控制器的admin_index操作中检查登录信息”,然后相应地显示登录屏幕。
有没有更好的方法呢?

admin(http://localhost/app/admin)的详细UR​​L指向用户控制器的index_admin操作(在routes.php文件中为此创建了一个新路由)

1 个答案:

答案 0 :(得分:6)

使用Authentication component。您可以使用以下内容为管理路由设置它:

// AppController::beforeFilter
function beforeFilter() {
    if (isset($this->params['prefix']) && $this->params['prefix'] == 'admin') {
        $this->Auth->deny('*');
        ...
    }
}

只检查index行为是没有意义的,这只是默默无闻,而不是安全。 AuthComponent将检查每个页面加载的权限。