gpt4 book ai didi

php - CakePHP API Blackhole - validatePost 禁用不起作用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:09 24 4
gpt4 key购买 nike

由于通过 API 进行纯密码登录,我们最近将我们的应用程序从 http 转移到了 https。

但是,自从这样做以来,我们遇到了 Blackholes 的实际问题。尽管

$this->Security->validatePost = false;  

在 AppController.php 中设置

我们使用的是 CakePHP 2.1.3 版

代码示例如下:

AppController.php:

function beforeFilter() 
{
$this->Security->validatePost = false;
$this->Security->requireSecure();
}

销售订单 Controller .php:

function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow('addApi'); // Allow access to the API without logging in.
}

POST 到此 URL 会返回以下消息:"请求已被黑洞"

一旦我们可以让它工作(没有被黑洞),我们将对其进行调整,以便只有某些操作可以在 validatePost = false 的情况下执行。但是,现在我们只想让系统正常工作。

注意:对操作的“GET”请求工作正常(不是黑洞)。

我是不是遗漏了一些简单的配置,还是工作中存在更深层次的问题?安全模块的文档似乎有点匮乏,从我的谷歌搜索来看,大多数人似乎都通过执行与我相同的步骤来避免黑洞。

最佳答案

事实证明以下内容在 CakePHP 2.X 中无效:

$this->安全->enabled = false;

要禁用您需要遵循此文档的组件: http://book.cakephp.org/2.0/en/core-libraries/components/security-component.html

我的问题与 CSRF 保护有关,我认为这可能是 CakePHP 2.X 中的新功能?无论如何,我需要做的就是在我的 SaleOrderController beforeFilter 函数中添加以下行:

$this->安全->csrfCheck = false;

我的整个 BeforeFilter 函数现在是:

function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow('addApi'); // Allow access to the API without logging in.
if (isset($this->Security) && $this->action == 'addApi') {
$this->Security->csrfCheck = false;
$this->Security->validatePost = false;
}
}

关于php - CakePHP API Blackhole - validatePost 禁用不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12275666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com