如何在Cake 2.0中单独启用安全性(CSRF)

时间:2015-08-22 05:54:37

标签: cakephp csrf

我正在尝试在Cakephp 2.0中启用CSRF安全性

我已将Security组件包含在我的控制器中。

public $components = array( 'Security');

我想只为一个函数启用此组件,比如功能测试。

其他功能必须没有安全性

我试过像

那样做
$this->Security->requireSecure('test');

我提供了这样的内容,因为我想单独在测试功能中启用安全性。

在cakephp3.0中,我找到了一个单独启用CSRF的选项。但我需要cakephp 2.0的解决方案

我不需要任何其他证券validatePost,requirePost,requireDelete等。

等待反馈。提前谢谢。

1 个答案:

答案 0 :(得分:1)

默认情况下,应在每个操作/表单中启用CSRF,并禁用所需的任何操作,而不是向后。

public $components = array('Security');

private $disabledCSRFForActions = array("test");

public function beforeFilter() {
    parent::beforeFilter();

    if (isset($this->Security) && in_array($this->action, $disabledCSRFForActions) {
            $this->Security->validatePost = false;
            $this->Security->enabled = false;
            $this->Security->csrfCheck = false;
    }
}