CakePHP提供了内置的CSRF保护功能,可以通过以下步骤来验证CSRF令牌:
initialize
方法中调用csrfProtection
方法来启用CSRF保护。
public function initialize() { parent::initialize(); $this->loadComponent('Csrf'); }$this->Form->hidden('_csrfToken')
。
echo $this->Form->create(); echo $this->Form->hidden('_csrfToken'); // 其他表单字段... echo $this->Form->end();Cake\Http\Exception\BadRequestException
。
如果您需要手动验证CSRF令牌,可以使用以下代码:
use Cake\Http\Exception\BadRequestException; public function add() { if ($this->request->is('post')) { $token = $this->request->getParam('_csrfToken'); if (!$this->Csrf->verify($token)) { throw new BadRequestException('Invalid CSRF token'); } // 处理表单数据... } }_validateCsrfToken
方法。protected function _validateCsrfToken($token)
{
// 自定义验证逻辑...
return $this->Csrf->verify($token);
}
领取专属 10元无门槛券
手把手带您无忧上云