【问题标题】:cakephp security - post to controller outside appcakephp 安全 - 发布到应用程序外部的控制器
【发布时间】:2014-07-03 11:32:02
【问题描述】:

我的问题是,是否可以发布到应用程序之外的控制器?

例如,我在 PostsController 中有一个控制器操作 add

在我的add.ctp

echo $this->Form->create('Post');
echo $this->Form->input('title');
echo $this->Form->input('body', array('rows' => '3'));
echo $this->Form->input('status', array('type' => 'hidden', 'value' => 1));
echo $this->Form->end('Save Post');

状态 1 表示等待审核。状态 2 表示已接受。

我知道我可以在 PostController 中设置状态或在数据库中设置默认值。这只是一个示例,因为我需要在视图中设置一些隐藏值。

我的add 操作:

    public function add() {
        if ($this->request->is('post')) {
            $this->Post->create();
            if ($this->Post->save($this->request->data)) {
                $this->Session->setFlash(__('Your post has been saved.'));
                return $this->redirect(array('action' => 'index'));
            }
            $this->Session->setFlash(__('Unable to add your post.'));
        }
    }

是否可以使用 curl 或其他东西发布到我的控制器并绕过等待审核状态?

或者安全组件会阻止这种情况发生吗?

我使用的是 cakephp 2.4.7。

谢谢

【问题讨论】:

  • "或者安全组件会阻止这种情况" ...您可以简单地尝试一下,不是吗?你的问题有点模棱两可,不清楚 you 是否真的 want 绕过表单篡改或 CSRF 保护,或者你只是想知道它是否可能,因为你担心您的应用程序安全。附言。请始终提及您的确切 CakePHP 版本并相应地标记您的问题。
  • 我只是想知道它是否可能。我正在使用 cakephp 2.4.7。到目前为止,我对其进行了测试,但无法绕过它。你同意吗?
  • 还取决于安全组件的配置方式。开箱即用的安全组件还是您启用/禁用/配置/篡改了该组件?
  • 我只是在使用开箱即用的安全组件。

标签: php security cakephp post cakephp-2.4


【解决方案1】:

“我只是想知道它是否可能。”

是的,有可能。

如果您提供有关您实际尝试做的事情的更多详细信息,您可能会得到更详细的答案。

【讨论】:

  • 我有一个控制器,用户可以在其中使用特定的request-status 向另一个用户创建请求。启动request的用户只能将状态设置为1或2。收到请求的用户只能将状态设置为3或4。实际上我的控制器中有4个动作(每个状态)。我的操作:requesterAcceptrequesterDenyrecipientAcceptrecipientDeny。而如果ricipient拒绝请求,requester就没有accept的可能性。 requester 只能在 recipient 也接受的情况下接受。
  • 我的问题是,有人可以操纵requester可以接受拒绝(由收件人)request 的表单。或者recipient 是否有可能从requester 访问操作?如果可能的话,如果用户有权执行此操作,我必须检查每个操作。
猜你喜欢
  • 1970-01-01
  • 2017-05-27
  • 1970-01-01
  • 1970-01-01
  • 2015-01-28
  • 1970-01-01
  • 2022-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多