无法禁用CSRF组件或从android POST

时间:2015-05-26 17:14:54

标签: android cakephp-3.0

自CakePHP 3.0.4发布以来,我无法再从我的Android应用程序访问我的web服务了!

我在方法_validateToken()中使用CsrfComponent.php()进行了探索,并找到了一个空标记!

等待了解Android方面的操作,我尝试使用doc中解释的以下停用方式:

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

不幸的是,问题仍然存在,无论如何,我发现在我返回令牌的get请求中,csrf令牌不再存在。所以上面的调用似乎做了一些事情,但为什么它不会阻止令牌检查??

如果我没有加载CSRF组件,一切顺利!

所以我很有意思可以帮助我仍然为所有访问启用CSRF组件,并为一些请求提供瞬时禁用它的解决方案,或者更好的是,使用android API传递CSRF令牌和CSRF头的方法22所有现有示例都使用已弃用的函数运行...

1 个答案:

答案 0 :(得分:0)

请确保已从 Controllers 控制器以及 config> route.php

中禁用了它

在route.php文件中的以下代码行中进行注释:

$routes->registerMiddleware('csrf', new CsrfProtectionMiddleware([
  'httpOnly' => true
]));

$routes->applyMiddleware('csrf');