csrf無効化

更新日 2021-06-21 19:34:18
cakephp3
routes.phpのcsrf設定をコメントアウトする

Router::scope('/', function (RouteBuilder $routes) {
    // Register scoped middleware for in scopes.
    /* // コメントアウト
    $routes->registerMiddleware('csrf', new CsrfProtectionMiddleware([
        'httpOnly' => true,
    ]));
    */

    /*
     * Apply a middleware to the current route scope.
     * Requires middleware to be registered through `Application::routes()` with `registerMiddleware()`
     */
    //$routes->applyMiddleware('csrf'); // コメントアウト


csrfコンポーネントを有効化する

public function initialize() {
  $this->loadComponent('Csrf');
}
その上で任意のコントローラで無効化する

public function beforeFilter(Event $event) {
    parent::beforeFilter($event);
    $this->getEventManager()->off($this->Csrf);
}