【问题标题】:cakephp 2.6 security request black-holed from another viewcakephp 2.6 安全请求从另一个角度黑洞
【发布时间】:2015-04-22 06:29:00
【问题描述】:

我对 cakephp 中的黑洞请求非常关注,但我没有找到解决问题的有效解决方案。

在我的应用程序中,我在多个地方使用了登录表单,因此我创建了一个可重用的元素。喜欢:

echo $this->Form->create('User', array('class' => 'form-horizontal', 'role' => 'form', 'url' => array('controller' => 'users', 'action' => 'login')));
echo $this->Form->input('email', array('label' => false, 'class' => 'form-control'));
echo $this->Form->input('password', array('label' => false, 'class' => 'form-control'));
echo $this->Form->end();

注意:控制器的 URL 和表单中的操作)

如果我在foo.com/users/login 中单击表单的发送按钮,我将成功重定向到用户/查看或返回用户/登录失败。之后,我按下浏览器页面返回按钮返回表单并再次单击发送按钮一切正常,并再次检查登录。但是如果我在例如foo.com/pages/home 中做同样的事情,我会在第二个继续时收到一个请求黑洞异常(第一个工作正常)。

如果我停用安全组件一切正常,但这不是我想要的。

如何防止这种情况发生?

我也认识到安全组件默认不可用?这是真的吗?

感谢您的帮助。

【问题讨论】:

  • 安全组件阻止用户重新点击表单,我猜你是在测试中重新点击表单。
  • 但是我该如何处理呢?它不是用户友好的。如果用户点击页面后退按钮,我可以自动刷新页面以便生成新令牌吗?推荐的处理方法是什么?
  • 如果用户点击返回按钮,您可以重新验证页面
  • 你能给我看一个例子或 cakephp 书的链接吗?
  • $this->response->disableCache();做到了!太感谢了。就我而言,我必须将其放入 PagesController 的显示操作中。发表你的答案,我会接受的。

标签: php security cakephp cakephp-2.0


【解决方案1】:

安全组件防止用户重新点击表单。 当用户按下返回按钮时,您可以使用

重新验证页面

$this->response->disableCache();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    相关资源
    最近更新 更多