使用后退按钮后CakePHP blackholing搜索

时间:2014-08-02 19:54:46

标签: php cakephp cakephp-2.4

我的CakePHP 2.4应用程序中的SecurityComponent存在问题:

我有一个与CakeDC搜索插件连接的表单,用于过滤index操作的结果。问题是SecurityComponent正是它应该做的事情,并防止表单被提交两次 - 如果用户搜索,返回并再次搜索,它会抛出CSRF错误,因为该令牌已被使用。

我为此尝试了一个解决方案,其中包括使用index中的此代码禁用beforeFilter操作上的SecurityComponent:

if($this->request->action == 'index'){
     $this->Components->disable('Security');
  }

这可以保护用户免受黑洞错误的影响,但这也意味着我的删除链接不再有效,因为delete操作需要来自启用了安全性的页面的令牌 - 并且出于显而易见的原因我不想禁用delete.

上的安全性

如果用户在使用后退按钮后进行搜索,同时仍然保持SecurityComponent运行以便我的删除链接有效,我该如何避免黑洞?

1 个答案:

答案 0 :(得分:0)

Read the documentation about CSRF.

  

SecurityComponent :: $ csrfUseOnce控制是否使用CSRF令牌   是一次性使用。设置为false以不在每个上生成新标记   请求。一个令牌将被重用,直到它过期。这减少了   用户因令牌而获得无效请求的可能性   消费。它具有使CSRF不那么安全的副作用   令牌是可重复使用的。

重新使用令牌可以解决问题。