Yii2 中禁用csrf校验
Yii2 默认开启csrf校验,但是有些时候确实不需要校验,比如对外提供API
一般做法直接在xxController中增加属性:
public $enableCsrfValidation = false;
但是这样整个xxController都失去了校验,开发中又只是希望某一个action禁用
在components下建文件NoCsrf.php,
内容:
class NoCsrf extends Behavior
{
public $actions = [];
public $controller;
public function events()
{
return [Controller::EVENT_BEFORE_ACTION => 'beforeAction'];
}
public function beforeAction($event)
{
$action = $event->action->id;
if(in_array($action, $this->actions)){
$this->controller->enableCsrfValidation = false;
}
}
}
在xxController中增加:
public function behaviors() {
return [
'csrf' => [
'class' => NoCsrf::className (),
'controller' => $this,
'actions' => [
'import-data' //actionName
]
]
];
}
Yii2 中禁用csrf校验的更多相关文章
- Flask-WTF中的csrf保护
CSRF 保护 这部分文档介绍了 CSRF 保护. 为什么需要 CSRF? Flask-WTF 表单保护你免受 CSRF 威胁,你不需要有任何担心.尽管如此,如果你有不包含表单的视图,那么它们仍需要保 ...
- Django中的CSRF
CSRF(Cross Site Request Forgery, 跨站域请求伪造) CSRF 背景与介绍 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的 ...
- Django中的CSRF(跨站请求伪造)
Django中的CSRF(跨站请求伪造) Django CSRF 什么是CSFR 即跨站请求伪装,就是通常所说的钓鱼网站. 钓鱼网站的页面和正经网站的页面对浏览器来说有什么区别? (页面是怎么来的? ...
- Yii2中使用Soap WebSerivce
Soap是一种轻量的.简单的.基于XML(标准通用标记语言下的一个子集)的协议 WebService顾名思义就是web服务,web服务主要有两种,一种是基于soap类型的服务,一种是基于rest类型的 ...
- spring-security中的csrf防御机制(跨域请求伪造)
什么是csrf? csrf又称跨域请求伪造,攻击方通过伪造用户请求访问受信任站点.CSRF这种攻击方式在2000年已经被国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型社 ...
- 禁止CSRF校验实例
静态文件----提交表单 本例在static目录中建立了一个from.html静态页面,该页面有一个<form>标签,用于向服务端提交POST请求,然后在post.py脚本文件中添加一个路 ...
- Django csrf校验
引入: 通常,钓鱼网站本质是本质搭建一个跟正常网站一模一样的页面,用户在该页面上完成转账功能 转账的请求确实是朝着正常网站的服务端提交,唯一不同的在于收款账户人不同. 如果想模拟一个钓鱼网站,就可是给 ...
- yii2关闭(开启)csrf的验证
(1)全局使用,我们直接在配置文件中设置enableCookieValidation为true request => [ 'enableCookieValidation' => true, ...
- day94:flask:Jinjia2模板引擎&flask中的CSRF攻击&Flask-SQLAlchemy的创建模型类和基本的增删改查
目录 1.Jinjia2模板引擎 1.Jinjia2加载模板并传递数据到模板中 2.Jinjia2的模板语句 3.模板中特有的变量和函数 4.模板中内置的过滤器 5.自定义过滤器 6.模板继承 2.在 ...
随机推荐
- 【ORM】--FluentNHibernate之AutoMapping详解
上篇文章详细讨论了FluentNHibernate的基本映射的使用方法,它的映射基本用法是跟NHibernate完全一样的,首先要创建数据库链接配置文件,然后编写Table的Mappin ...
- MS - 2 - 设计包含 min 函数的栈
定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素. 要求函数 min.push 以及 pop 的时间复杂度都是 O(1). template<typename T> st ...
- PIC32MZ tutorial -- External Interrupt
In my older blog "PIC32MZ tutorial -- Key Debounce", I shows how to acheive key debounce w ...
- 修改APK包并push到system/app路径下安装
在工作中,经常遇到需要修改apk包里的资源文件,达到检验不同配置下程序运行情况的目的. 过程如下: 1.首先连接手机,进入命令行,输入:adb root,使得adb获取root权限. 2.输入:adb ...
- Get Intensity along a line based on OpenCV
The interpolate function is used to get intensity of a point which is not on exactly a pixel. The co ...
- 转: windows下面安装Python和pip终极教程
原文: http://www.cnblogs.com/yuanzm/p/4089856.html 因为如果是初学者在windows环境下安装,简直是折磨人,会遇到各种蛋疼的情况.本文希望提供傻瓜式的教 ...
- Matlab melband的计算
%% mel bankmelnum = 24;low = 0;high = 0.5;melbank=melbankm(melnum,fftsize,Fs,low,high,'m');%归一化mel滤波 ...
- kendo ui 富文本编辑控件 Editor 实现本地上传图片,并显示
富文本编辑的组件有很多,大名鼎鼎的KENDO UI中自然也有,但是默认功能中,只能包含网络图片, 而如果要实现本地上传图片,KENDO UI也提供了相应的功能,但必须实现KENDO规定的多个接口, 而 ...
- JCCLIENT IP GET UDP
##通道##110.52.233.5:18427## ##通道##112.95.251.214:18427## ##通道##119.29.192.206:18427## ##通道##123.207.1 ...
- Android菜鸟成长记15 -- BitMap
BitMap简介 Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,并可以指定格式保存图像文件.本文从应用的角度,着重介绍怎么用Bi ...