亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

yii2局部關閉(開啟)csrf的驗證的實例代碼

2024-05-04 23:58:40
字體:
來源:轉載
供稿:網友

上一節主要是簡單地說了一下關于yii2的防御csrf的攻擊機制,接下來說一下關于如何全局和局部的開啟使用csrf。

(1)全局使用,我們直接在配置文件中設置enableCookieValidation為true

request => [   'enableCookieValidation' => true, ] 

如果不需要使用csrf的話,設置'enableCookieValidation' => false,但是這是不安全的,因此yii2的yii/web/request中的enableCookieValidation默認設置為true的,也就是默認開啟csrf的,所以我們也可以不配置這個值,默認開啟。

如果開啟csrf,因為這是全局的,所以在任何的post請求都會要求認證,所以我們在post數據的時候,就必須設置csrf的數據隱藏在表單中。

 

復制代碼 代碼如下:

<input type="hidden" name="_csrf" id='csrf' value="<?= Yii::$app->request->csrfToken ?>"> 

 

post數據的時候必須要把這個值post過去,這個值的產生<?= Yii::$app->request->csrfToken ?>,返回一個加密后的csrfToken。

所以無論是post表單還是ajax的post過去,都必須設置csrfToken這個值,并且要提交時要post過去。如果沒有的話,就會發生錯誤,無法認證通過。

(2)如果想在某些控制器不想使用csrf驗證的話,又該如何做呢?

方法很簡單,直接設置

public $enableCsrfValidation = false ,

因為這個Controller繼承與yii/web/Controller ,將相當于繼承于enableCsrfValidation這個屬性,那么在創建控制器實例時,就會在這個控制器關閉csrf功能,訪問這個控制器的post的方式時,也就不會進行驗證。

舉一個例子,比如我們開發API的時候,微信那邊的接口需要post數據給我們的接口時,由于微信端不知道csrfToken,所以訪問post數據的時候,如果開啟全局csrf的話,那肯定不能訪問成功的。所以這時就需要關閉這個API 的csrf。

3)如果要具體關閉至某一個action呢?

有時在一些功能中,我們需要在某一個action中關閉csrf驗證。我們知道對于csrf的驗證是在beforeAction($Action)中實現的,下面我們可以在Controller中重寫beforeAction($action)這個方法

public function beforeAction($action) {    $currentaction = $action->id;    $novalidactions = ['dologin'];    if(in_array($currentaction,$novalidactions)) {      $action->controller->enableCsrfValidation = false;   }   parent::beforeAction($action);    return true; } 

傳入的參數$action是controller針對這個訪問實例化的對象,里面包含很多信息,大家可以打印看看。

首先執行$action->id獲取當前的訪問的action名稱。而$novalidactions是一個數組,里面是action名稱,這些action都是是你需要關閉csrf的認證的操作(需要關閉csrf認證的操作)。

通過當前的訪問的action是否在這個$novalidactions中,如果在,說明這個action需要關閉csrf功能,所以就將這個控制器實例的設置為

$action->controller->enableCsrfValidation = false

接下來再執行parent::beforeAction($action),此時傳入來的$action里的controller實例的enableCsrfValidation已變為false。

最后一定要返回true,否則的話,不會往下執行action操作的。

(4)如果局部開啟呢?

首先在配置文件要設置

request => ['enableCookieValidation' => false,]

全局不使用csrf。

(a)要在控制器中開啟,只需要設置

public $enableCsrfValidation = true

則整個控制器都會開啟

(b)要在action中開啟

public function beforeAction($action) {$currentaction = $action->id;$accessactions = ['dologin'];i f(in_array($currentaction,$accessactions)) {       $action->controller->enableCsrfValidation = true; }    parent::beforeAction($action);    return true;}

$accessactions是需要開啟csrf的action的名稱,將設置$action->controller->enableCsrfValidation = true,當前操作可以開啟csrf。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人免费黄色网| 欧美日韩中国免费专区在线看| 国产视频精品一区二区三区| 91伊人影院在线播放| 亚洲欧美国产精品va在线观看| 国产成人精彩在线视频九色| 日韩av在线直播| 高跟丝袜一区二区三区| 国产精品久久久久久影视| 岛国av一区二区在线在线观看| 精品久久久久人成| 欧美激情视频给我| 亚洲欧美日韩精品久久| 亚洲国产97在线精品一区| 国产亚洲欧美视频| 久久人人爽人人爽人人片av高请| 色先锋久久影院av| 在线观看精品自拍私拍| 精品久久久久久久久久国产| 成人欧美一区二区三区黑人| 97国产suv精品一区二区62| 国外成人在线直播| 国产日韩在线视频| 亚洲精品午夜精品| 国产日韩精品入口| 国内精品免费午夜毛片| 伊人久久免费视频| 亚洲高清在线观看| 国产欧美精品va在线观看| 97国产成人精品视频| 在线观看不卡av| 成人免费高清完整版在线观看| 国产成人鲁鲁免费视频a| 国产精品视频一区二区三区四| 欧美成人一二三| 亚洲欧美一区二区三区四区| 国产精品美女呻吟| 国产精品都在这里| 亚洲一区二区免费| 色综合色综合久久综合频道88| 日韩精品免费在线视频观看| 亚洲片国产一区一级在线观看| 国产裸体写真av一区二区| 亚洲精品一区在线观看香蕉| 久久伊人精品天天| 久久中文精品视频| 久久久欧美精品| 国产日韩欧美影视| 国产精品入口尤物| 精品爽片免费看久久| 欧美日韩国产综合视频在线观看中文| 国产热re99久久6国产精品| 日韩精品视频中文在线观看| 日韩电影中文字幕在线观看| 亚洲久久久久久久久久久| 国产精品久久久久77777| 成人激情视频免费在线| 亚洲高清在线观看| 最近2019年中文视频免费在线观看| 中文字幕最新精品| 欧美激情亚洲精品| 国产精品99久久久久久久久久久久| 日韩欧美国产免费播放| 国产精品999999| 国产视频自拍一区| 黄色精品一区二区| 国产精品久久久久久久久借妻| 日韩午夜在线视频| 国产97色在线|日韩| 久久青草福利网站| 亚洲激情久久久| 在线日韩精品视频| 日韩在线精品视频| 亚洲毛片在线免费观看| 亚洲免费精彩视频| 日韩视频免费中文字幕| 国产精品999999| 一区二区三区在线播放欧美| 日韩欧美在线免费| 国产视频精品一区二区三区| …久久精品99久久香蕉国产| 狠狠久久五月精品中文字幕| www.久久色.com| 国产成人黄色av| 国产精品成人播放| 亚洲999一在线观看www| 91热精品视频| 欧美日韩黄色大片| 日韩精品视频在线观看网址| 日韩av一区二区在线观看| 亚洲字幕在线观看| 亚洲性猛交xxxxwww| 欧美成在线视频| 日韩亚洲精品视频| 91免费在线视频网站| 国产精品黄色影片导航在线观看| 日韩一中文字幕| 亚洲精品动漫100p| 日韩精品在线观| 欧美—级高清免费播放| 国产欧美日韩中文字幕| 欧美三级免费观看| 欧美日韩国产黄| 国产精品伦子伦免费视频| 欧美电影免费观看大全| 超碰日本道色综合久久综合| 成人免费观看网址| 亚洲毛片一区二区| 欧美高清激情视频| 亚洲第一福利在线观看| 欧美日韩成人在线观看| 亚洲综合成人婷婷小说| 78m国产成人精品视频| 2019av中文字幕| www.国产一区| 国产视频亚洲精品| 综合国产在线观看| 91精品国产91久久久久久吃药| 性欧美亚洲xxxx乳在线观看| 日韩av免费一区| 久热99视频在线观看| 中文字幕久久亚洲| 国产精品草莓在线免费观看| 自拍偷拍免费精品| 中文精品99久久国产香蕉| 色综合老司机第九色激情| 久久99国产精品自在自在app| 777午夜精品福利在线观看| 国语自产精品视频在线看抢先版图片| 成人国产精品色哟哟| 成人久久精品视频| 午夜剧场成人观在线视频免费观看| 国产成人精品视频在线观看| 日日噜噜噜夜夜爽亚洲精品| 日韩电影大全免费观看2023年上| 久久久精品国产| 欧洲成人午夜免费大片| 精品国产欧美一区二区三区成人| 欧美猛交ⅹxxx乱大交视频| 亚洲伊人久久综合| 国产在线视频一区| 亚洲精品福利资源站| 91av在线免费观看| 国产日韩换脸av一区在线观看| 欧美极品少妇xxxxx| 亚洲国产97在线精品一区| 欧美成在线视频| 亚洲黄色成人网| 日本精品视频在线| 136fldh精品导航福利| 欧美大片免费观看在线观看网站推荐| 欧美性做爰毛片| 91精品国产自产在线老师啪| 亚洲一区久久久| 欧美电影免费观看网站| 色综合伊人色综合网站| 少妇激情综合网| 亚洲性生活视频在线观看| 日韩中文第一页| 欧美精品手机在线| 日本aⅴ大伊香蕉精品视频| 成人在线激情视频| 欧美一区二区三区艳史| 成人国产在线激情|