【问题标题】:CakePHP 3 Security component and Form Fields using VueJS使用 VueJS 的 CakePHP 3 安全组件和表单字段
【发布时间】:2018-12-31 20:12:13
【问题描述】:

我正在使用 Vue.js 和 CakePHP 3.6 创建一个应用程序。

POST 时,安全组件会抛出 400 错误,因为缺少 _Token 字段。我对 CSRF 令牌没有问题,只是表单安全验证。

我不想在整个应用程序中禁用该组件。

我找到了一个非解决方案:从 Cake\View\Helper\SecureFieldTokenTrait 公开 _buildFieldToken 但我认为这将避免 SecurityComponent 的目的。

任何帮助都非常受欢迎和赞赏。

【问题讨论】:

  • 当您显示一些代码以便人们能够正确理解您的问题时,您可能会得到更好的答案。 在哪里以及如何构建表单?暴露_buildFieldToken()如何解决问题?您真的需要对这些有问题的表单使用表单篡改保护吗?

标签: php ajax cakephp vue.js cakephp-3.0


【解决方案1】:

您需要通过 fetch 或 axios 访问的控制器中的操作(例如:ajaxRequest)可以在控制器中解锁:

如果您使用蛋糕助手生成了表单,_CSRFTOKEN 在表单标签或隐藏输入中(对不起,请检查浏览器中的表单元素),当您本地化令牌时,将其添加到 .$ 的数据中发布()。

ajax request cakephp

public function beforeFilter(Event $event)
{
     //this line is not necessary if you pass the _csrfToken
     $this->getEventManager()->off($this->Csrf);
     $this->Security->setConfig('unlockedActions', ['ajaxRequest']);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多