我正在尝试在Cakephp 2.0中启用CSRF安全性
我已将Security组件包含在我的控制器中。
public $components = array( 'Security');
我想只为一个函数启用此组件,比如功能测试。
其他功能必须没有安全性
我试过像
那样做$this->Security->requireSecure('test');
我提供了这样的内容,因为我想单独在测试功能中启用安全性。
在cakephp3.0中,我找到了一个单独启用CSRF的选项。但我需要cakephp 2.0的解决方案
我不需要任何其他证券validatePost,requirePost,requireDelete等。
等待反馈。提前谢谢。
答案 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;
}
}