我想使用 CakePHPSecurityComponent
来强制应用程序请求通过 SSL 使用requireSecure()
.
我的问题是,默认情况下这是一种黑名单方法——默认情况下允许不安全的访问,除非该控制器明确禁止。我想切换到白名单方法 - 默认情况下拒绝不安全的访问,除非我在该控制器中明确允许它。
这个功能是否内置在 SecurityComponent 中?如果没有,我该如何手动设置?
我想使用 CakePHPSecurityComponent
来强制应用程序请求通过 SSL 使用requireSecure()
.
我的问题是,默认情况下这是一种黑名单方法——默认情况下允许不安全的访问,除非该控制器明确禁止。我想切换到白名单方法 - 默认情况下拒绝不安全的访问,除非我在该控制器中明确允许它。
这个功能是否内置在 SecurityComponent 中?如果没有,我该如何手动设置?
默认情况下,这似乎不是内置的。您可以通过创建控制器的属性来模拟这一点,$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 的目标,但如果需要,可以在控制器中显式覆盖此要求。