【问题标题】:CakePHP blackholing search after using back button使用后退按钮后 CakePHP 黑洞搜索
【发布时间】:2014-08-02 19:54:45
【问题描述】:

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

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

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

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

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

当用户在使用后退按钮后进行搜索时,如何避免出现黑洞,同时保持 SecurityComponent 运行以便我的删除链接正常工作?

【问题讨论】:

    标签: php cakephp cakephp-2.4


    【解决方案1】:

    Read the documentation about CSRF.

    SecurityComponent::$csrfUseOnce 控制是否使用 CSRF 令牌 是一次性使用。设置为 false 不会在每个上生成新令牌 要求。一个令牌将被重复使用,直到它过期。这减少了 由于令牌,用户收到无效请求的机会 消耗。它具有降低 CSRF 安全性的副作用,因为 令牌是可重复使用的。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 2010-12-26
      • 2012-06-08
      • 1970-01-01
      相关资源
      最近更新 更多