在 Yii2 中禁用单个操作的 CSRF 验证

2023-11-29

有没有办法对控制器的某些操作禁用 CSRF 验证,同时对其他操作保持启用状态?

就我而言,我有几个可配置的 Action 类,它们旨在注入到控制器中。我无法将 csrf 验证令牌传递到 AJAX 请求中,因为我正在使用的东西是前端的外部(不是我制作的)WYSIWYG 插件。是的,我仍然可以使用这些操作禁用整个控制器的 csrf 验证,但它可能不安全。


对于特定的控制器/操作,您可以禁用 CSRF 验证,如下所示:

use Yii;

...

Yii::$app->controller->enableCsrfValidation = false;

或者在控制器内部:

$this->enableCsrfValidation = false;

看一眼$enableCsrfValidation的财产yii\web\控制器.

Update:

这是一些规范。

如果您想禁用单个操作的 CSRF 验证,您需要在beforeAction事件处理程序,因为在操作运行之前会检查 CSRF 令牌(在beforeAction of yii\web\Controller).

/**
 * @inheritdoc
 */
public function beforeAction($action)
{            
    if ($action->id == 'my-method') {
        $this->enableCsrfValidation = false;
    }

    return parent::beforeAction($action);
}

官方文档:

  • 之前的动作()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Yii2 中禁用单个操作的 CSRF 验证 的相关文章

  • Magento CSRF 保护

    我正在 Magento 中查看自定义表单 我看到了这些教程 http fastdivision com 2012 03 29 diy magento create ajax login registration forms for your
  • 保护登录和评论表单免受 CSRF 攻击

    我读过很多关于CSRF保护的文章 这个不错 http seclab stanford edu websec csrf csrf pdf 以及关于SO的各种问题 但它们似乎都没有足够的信息来回答我的问题 我正在开发自己的 CMS 我想保护我的
  • Cakephp - CSRF 令牌不匹配

    我在 Cakephp 3 6 中有一个项目 其中 MessageController 中的 3 个操作由 Ajax 调用 但是 我有一个问题 当我向其中一个操作发送请求时 XHR 会向我返回以下内容 message CSRF token m
  • 在 Angular 6 中添加 Xsrf-Token 时出现问题

    通过 API 提交的表单中的数据已成功发布 但是将 X CSRF TOKEN 添加到标头并设置后withCredentials true结果数据未发布到名为的脚本insert php Error 加载失败http localhost sim
  • Yii2 - 检查用户是否登录视图

    我试图检查用户是否登录到我的视图文件中 但我不断收到此错误 Call to undefined method Yii app 我尝试添加 before app但错误仍然存 在 这次是未定义的变量 应用程序 这可能是观点吗 这是我用来检查用户
  • 保护基于prototype.js的XHR请求免受CSRF攻击

    Django 已经更新到 1 3 事实上从 1 2 5 开始 它就扩展了该方案 将跨站请求伪造保护令牌传递给 XMLHttpRequests Django 人员提供了帮助jQuery 的一个例子 http docs djangoprojec
  • Yii2 组件将数据传递给 __construct

    我有一个库 我想将其用作组件 在配置文件中我这样设置 components gt superLib gt class gt SuperLib construct gt first second Maybe Yii 2 have proper
  • Rails API 设计无需禁用 CSRF 保护

    早在 2011 年 2 月 Rails 就改为需要 CSRF 令牌all non GET http weblog rubyonrails org 2011 2 8 csrf protection bypass in ruby on rail
  • 在 yii2 登录页面上重定向的最佳方法是什么

    如果用户未登录 则用户应该在登录页面上重定向 因为我发现该功能对我来说工作正常 我使用了以下功能 public function beforeAction action if Yii app gt getUser gt isGuest Yi
  • ASP.NET MVC 防伪造令牌不安全

    在没有 ssl 的情况下向服务器发出请求时 我实际上可以看到 MVC3 框架以纯文本形式生成的验证令牌密钥 该密钥存储在名为 RequestVerificationToken Lw 的 cookie 中 在混合安全环境中 实际上可以在向非
  • 如何将 yii2 Restful api 中两个表的关系数据显示为 json 格式

    我遇到了将两个表中的数据显示为 JSON 格式并在 yii2 Restful api 上工作的问题 这是我的结构数据库 TABLE volunteer volunteer id int 11 NOT NULL auto increment
  • Yii2 无效调用:设置只读属性

    我有一个Post具有多对多关系的模型Tags 在 Post 模型中定义 public function getTags return this gt hasMany Tags className id gt tag id gt viaTab
  • 正确设置 Laravel 5 CSRF 令牌的标头

    好吧 已经搜索这个问题好几个小时了 只是找不到解决方案的开始 我正在使用 angularJS 前端和 laravel 后端 Restangular 是我的通讯服务 我的 POST 很好 因为我可以在数据中包含 token 并且它会起作用 但
  • yii2 行为 ActiveRecord::EVENT_BEFORE_INSERT 不起作用

    我的模型中的行为函数如下 public function behaviors return timestamp gt class gt yii behaviors TimestampBehavior attributes gt Active
  • 使用 PHPcurl 和 CSRF 令牌登录

    我想从 PHP 脚本登录到另一个网站 但我总是收到这样的回复 403 Error CSRF token mismatch 我从网站上的隐藏字段中提取了 CSRF 令牌 但它似乎是错误的 这是我的代码 username testuser pa
  • 如何在 Yii2 中设置 Flash 消息?

    我跟着这个Link https stackoverflow com questions 29382849 how i use flash message in yii2 我的代码如下 在控制器中 public function action
  • Django的注释框架和CSRF

    据我了解 Django的评论框架 https docs djangoproject com en 1 4 ref contrib comments 专为匿名公众评论而设计 就像您通常在博客或文章下面看到的那样 换句话说 任何人都可以发表评论
  • 在 config/main.php 中找不到 Yii2 模块(不在 /vendor 文件夹下)类

    我在 api 文件夹下创建了一个模块 它本身与 yii2 高级应用程序中的后端和前端处于同一级别 文件夹结构 api 常见的 控制器 楷模 配置 模块 v1 控制器 楷模 运行 测试 网络 在 api config main php 中 r
  • 应用程序移至 Docker 生产环境时 Flask-WTF CSRF 验证失败

    我刚刚为我一直在开发的 Flask 应用程序设置了生产环境 这个堆栈是 Windows Server 2012 R2 Hyper V VM Running Ubuntu 14 04 Docker 1 5 Running Containers
  • 当我在 yii2 中使用 findbysql 查询时排序和搜索列

    我正在搜索四个表并将它们连接起来并得到我想要的输出 但无法对输出进行排序或过滤 请告诉我如何按地区或销售范围或收集范围搜索它 PartySearch 模型是

随机推荐

  • 如何更新sqlite中的整列? [复制]

    这个问题在这里已经有答案了 可能的重复 需要更新SQLite中某列的值 大家好 我的 Android 应用程序的 SQLite 数据库表中有 5 条记录 值为 5 25 15 25 25 现在我想用 50 更新我的整个列 例如 5 50 5
  • UrlEncodedFormEntity 的 Android HTTP 上传进度

    有几个问题讨论了如何使用 multipart form data 数据格式将进度指示添加到 Android 中的 HTTP 文件上传中 建议的典型方法是由最佳答案概括的无法获取 http POST 文件上传的进度 Android 包含完整
  • Django Rest 框架表单

    我想做的事 Django Rest Framework 附带一个渲染器 用于从序列化器返回 HTML 表单 1 在仔细阅读文档和代码之后 我仍然无法弄清楚如何让它呈现空白表单 我认为问题可能在于 我不知道如何实例化空白序列化器 在 DRF
  • yii 验证码无法正确验证

    我尝试使用 yii 添加验证码到我的联系表单 但验证存在一些问题 My model class ContactForm extends CFormModel public verifyCode public function rules r
  • iPhone 应用程序提交:错误 ITMS-90171:无效的捆绑结构 (constants.o)

    我做了大量的研究 并做了几件事来尝试消除这个错误 绝对没有任何作用 当我从 Xcode 中将存档上传到应用程序商店时 出现以下错误 错误 ITMS 90171 无效的捆绑包结构 不允许使用二进制文件 app constants o 除了受支
  • Ngb Tab 在选项卡更改时重新加载组件

    我有 2 个选项卡 选项卡内容内有一个我开发的组件 当我从一个选项卡移动到另一个选项卡并返回到放置我开发的组件的选项卡时 它会重新加载并调用其生命周期方法 这给我带来了问题 有没有办法在选项卡更改时停止重新加载组件 HTML 代码
  • asp.net mvc 和 recaptcha 操作 [重复]

    这个问题在这里已经有答案了 当用户提交表单时 我想间歇性地显示 重定向到验证码页面 基于一些自定义规则 如果经过验证 则执行 提交第一个操作 有没有办法使用 ActionFilter 来做到这一点 或者任何其他方式 这也是 http egl
  • 在ubuntu 16.04上安装pip

    我正在安装pip对于 python3 我为此使用了以下命令 sudo apt get install python3 pip 但安装后还是提示pip未安装 I have python 3 5 2安装 The python3 pip软件包为
  • TinyMCE 在隐藏文本区域之前不会从文本区域获取内容

    我在页面上运行了一个 TinyMCE 实例 使我能够编辑现有帖子 我查询数据库并填充变量 content与存储的文本 然后我有以下 HTML
  • 仅使用 xamarin Andriod 连接到 mySQL 数据库时出现问题,但可在 iOS 和 UWP 中使用

    我正在从 Xamarin 跨平台应用程序直接连接到 mySQL 服务器 仅用于学习目的 该连接在 iOS 和 UWP 中都运行良好 但在 Android 中会抛出此行错误 等待 conn OpenAsync 这是完整的错误 System T
  • LLVM JIT编译的程序找不到外部函数

    我的程序 JIT 编译 LLVM IR 模块并调用函数foo如果其中定义在运行时失败foo使用外部定义的函数 LLVM ERROR Program used external function glutInit which could no
  • 为什么 numpy.vectorize 在使用不确定性时会发出有关无效值的警告?

    使用 Python 3 10 numpy 1 23 5 和不确定性3 1 7 在 Linux 上 特别是在 Fedora 37 上使用 conda forge 的软件包 代码如下 import numpy as np from uncert
  • Qt - 如何在多个平台上保存配置文件

    我正在编写一个 Qt 应用程序 需要将一些设置保存到用户的配置目录中 我想出了以下代码来获取此文件夹 ifdef Q WS WIN path QDir homePath Application Data Timely else path Q
  • excel vba选择表格范围

    我想选择一个表 它将有固定的列 其中 4 个 但可以有任意数量的行 也可以有空行 我将如何选择表格范围 例如 当前选择是B2 to E5 我怎样才能在VBA中以编程方式获得这个 以下是如何设置对表的引用 你应该观看 Excel VBA 简介
  • 基于通配符替换字符串的 SQL 查询

    我想在我的 WP 数据库上运行此类查询以删除 id more 的所有跨度实例 UPDATE wp posts SET post content REPLACE post content p span span p 但在我的示例中 more
  • 如何使用适配器在按钮单击时添加 ListView 项目

    如何获取在 EditText 中输入的数据并通过单击该窗口中的 提交 将其添加到以前的活动列表视图项目中 我需要做的是 创建 EditText 和提交按钮 在同一个 Activity 中创建列表视图 通过单击提交按钮 它应该在列表视图中显示
  • Cobertura 显示正确的覆盖范围,但在声纳中许多文件显示 0% 覆盖范围

    I have write multiple JUnit test classes for my project The code covergae is 80 when I see it in Eclipse using cobertura
  • 执行 sqlalchemy 存在查询

    我无法理解如何执行查询来检查 sqlalchemy 中是否已存在匹配的记录 我可以在网上找到的大多数示例似乎都引用了我没有的 会话 和 查询 对象 这是一个简短的完整程序 说明了我的问题 1 使用 person 表设置内存中的sqlite数
  • 将“Dialog”小部件的宽度设置为 Vaadin 14 中页面的百分比

    在瓦丁 14 中 Dialog当指定宽度和高度时 小部件可以正确打开px CSS 虚拟 像素 Dialog dialog new Dialog dialog setCloseOnEsc true dialog setCloseOnOutsi
  • 在 Yii2 中禁用单个操作的 CSRF 验证

    有没有办法对控制器的某些操作禁用 CSRF 验证 同时对其他操作保持启用状态 就我而言 我有几个可配置的 Action 类 它们旨在注入到控制器中 我无法将 csrf 验证令牌传递到 AJAX 请求中 因为我正在使用的东西是前端的外部 不是