【发布时间】: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