博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
yii2 csrf验证以及token管理
阅读量:6277 次
发布时间:2019-06-22

本文共 786 字,大约阅读时间需要 2 分钟。

  hot3.png

开启/关闭csrf

默认情况下yii2是开启了csrf验证功能的,如果需要关闭它的话,只要在控制器中设置一个属性就可以:

public $enableCsrfValidation = false;

一般情况下不建议关闭,但api场景可能需要关闭。

TOKEN生成管理

token生成有三种方式

meta标签

在模板中使用 <?=yii\helpers\Html::csrfMetaTags();?> 即可生成meta标签,如下

meta标签主要是给ajax用的,ajax提交的时候可以直接从meta中获取csrf-token然后一并提交给后端,csrf-param就是参数名称,也可以直接通过header头提交,以jquery为例:

$.ajaxSetup({  headers: {     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')  }});

表单隐藏域

使用 <?=yii\helpers\Html::beginForm();?> 替代手动输入 <form> 标签,yii2框架会自动添加一个隐藏的input,类似下面这样:

当然,为了保持对称,建议使用 <?=yii\helpers\Html::endForm();?> 替代 </form>

字符串

<?=Yii::$app->request->getCsrfToken();?> 可以直接获取到token,这样随便放在哪个位置,比较灵活。但记得post的时候要记得提交给后端,参数名字的话默认是 _csrf ,也可以通过 Yii::$app->request->csrfParam 获取。

转载于:https://my.oschina.net/cxz001/blog/663550

你可能感兴趣的文章
Walls and Gates
查看>>
JavaScript 继承的那些事
查看>>
Scala中的函数式特性
查看>>
脱离“体验”和“安全”谈盈利的游戏运营 都是耍流氓
查看>>
试水区块链出版?纽约时报在招人了
查看>>
拥抱PostgreSQL,红帽再表态:SSPL的MongoDB坚决不用
查看>>
让架构更简单,QCon上海2016热点前瞻
查看>>
如何测试ASP.NET Core Web API
查看>>
SQL Server新一轮更新
查看>>
想像亚马逊或 Netflix 一样酷?抱走敏捷转型五大秘籍
查看>>
《Git in Practice》作者访谈:关于Git的八个问题
查看>>
Visual Studio 2019正式版发布,专注于人工智能和生产力
查看>>
写给Java程序员的Java虚拟机学习指南
查看>>
苏宁11.11:如何基于异步化打造会员任务平台?
查看>>
滴滴开源支撑业务代码重构工具Rdebug
查看>>
Table Editor 使用方法
查看>>
支持多种小程序!阿里云ARMS推出小程序监控
查看>>
《The Age of Surge》作者访谈
查看>>
《A Seat at the Table》作者访谈录
查看>>
F# 4.5提供Spans、Match!等特性
查看>>