0

我想使用 CakePHPSecurityComponent来强制应用程序请求通过 SSL 使用requireSecure().

我的问题是,默认情况下这是一种黑名单方法——默认情况下允许不安全的访问,除非该控制器明确禁止。我想切换到白名单方法 - 默认情况下拒绝不安全的访问,除非我在该控制器中明确允许它。

这个功能是否内置在 SecurityComponent 中?如果没有,我该如何手动设置?

4

1 回答 1

0

默认情况下,这似乎不是内置的。您可以通过创建控制器的属性来模拟这一点,$requireSecure然后有条件地调用requireSecure(). AppController::beforeFilter()以下是您将如何实现它:

应用控制器.php:

public $requireSecure = true;

public function beforeFilter() {
    if ($this->requireSecure) {
        $blacklist = is_array($this->requireSecure) ? $this->requireSecure : array('*');
        $this->Security->requireSecure($blacklist);
    }
}

白名单控制器:

public $requireSecure = false;

控制器,因方法而异(注意这$requireSecure是一个黑名单):

public $requireSecure = array('login');

这实现了默认要求 SSL 的目标,但如果需要,可以在控制器中显式覆盖此要求。

于 2012-10-16T18:11:59.333 回答