Rumah pembangunan bahagian belakang tutorial php yii2局部开启关闭csrf验证的代码

yii2局部开启关闭csrf验证的代码

Feb 08, 2018 am 09:32 AM
csrf yii2 penutupan

本文主要和大家介绍了yii2局部关闭(开启)csrf的验证的实例代码。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

(1)全局使用,我们直接在配置文件中设置enableCookieValidation为true


request => [ 
  'enableCookieValidation' => true, 
]
Salin selepas log masuk

如果不需要使用csrf的话,设置'enableCookieValidation' => false,但是这是不安全的,因此yii2的yii\web\request中的enableCookieValidation默认设置为true的,也就是默认开启csrf的,所以我们也可以不配置这个值,默认开启。

如果开启csrf,因为这是全局的,所以在任何的post请求都会要求认证,所以我们在post数据的时候,就必须设置csrf的数据隐藏在表单中。

复制代码 代码如下:



post数据的时候必须要把这个值post过去,这个值的产生request->csrfToken ?>,返回一个加密后的csrfToken。

所以无论是post表单还是ajax的post过去,都必须设置csrfToken这个值,并且要提交时要post过去。如果没有的话,就会发生错误,无法认证通过。

(2)如果想在某些控制器不想使用csrf验证的话,又该如何做呢?

方法很简单,直接设置


public $enableCsrfValidation = false ,
Salin selepas log masuk

因为这个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; 
}
Salin selepas log masuk

传入的参数$action是controller针对这个访问实例化的对象,里面包含很多信息,大家可以打印看看。

首先执行$action->id获取当前的访问的action名称。而$novalidactions是一个数组,里面是action名称,这些action都是是你需要关闭csrf的认证的操作(需要关闭csrf认证的操作)。

通过当前的访问的action是否在这个$novalidactions中,如果在,说明这个action需要关闭csrf功能,所以就将这个控制器实例的设置为


$action->controller->enableCsrfValidation = false
Salin selepas log masuk

接下来再执行parent::beforeAction($action),此时传入来的$action里的controller实例的enableCsrfValidation已变为false。

最后一定要返回true,否则的话,不会往下执行action操作的。

(4)如果局部开启呢?

首先在配置文件要设置


request => [
'enableCookieValidation' => false,
]
Salin selepas log masuk

全局不使用csrf。

(a)要在控制器中开启,只需要设置


public $enableCsrfValidation = true
Salin selepas log masuk

则整个控制器都会开启

(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;
}
Salin selepas log masuk

$accessactions是需要开启csrf的action的名称,将设置$action->controller->enableCsrfValidation = true,当前操作可以开启csrf。

相关推荐:

详解yii2 csrf的局部开关

解决启用Csrf后出现400错误

Yii2.0防御csrf攻击方法

Atas ialah kandungan terperinci yii2局部开启关闭csrf验证的代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mematikan iklan yang disyorkan oleh 360 Browser? Bagaimana untuk mematikan iklan yang disyorkan oleh 360 Browser pada PC? Bagaimana untuk mematikan iklan yang disyorkan oleh 360 Browser? Bagaimana untuk mematikan iklan yang disyorkan oleh 360 Browser pada PC? Mar 14, 2024 am 09:16 AM

Bagaimana untuk mematikan iklan yang disyorkan oleh 360 Browser? Saya percaya bahawa ramai pengguna menggunakan Pelayar 360, tetapi pelayar ini kadangkala memaparkan iklan, yang membuatkan ramai pengguna sangat tertekan Biarkan tapak ini memperkenalkan dengan teliti kepada pengguna cara untuk Mematikan iklan yang disyorkan oleh Pelayar 360 pada komputer anda. Bagaimana untuk mematikan iklan yang disyorkan oleh 360 Browser pada komputer anda? Kaedah 1: 1. Buka 360 Safe Browser. 2. Cari logo "tiga bar mendatar" di penjuru kanan sebelah atas dan klik [Tetapan]. 3. Cari [Makmal] dalam bar tugas di sebelah kiri antara muka pop timbul, dan tandakan [Dayakan fungsi "360 Hotspot Information"]. Kaedah 2: 1. Klik dua kali pertama

Bagaimana untuk mematikan Sina News Express Bagaimana untuk mematikan fungsi ekspres? Bagaimana untuk mematikan Sina News Express Bagaimana untuk mematikan fungsi ekspres? Mar 12, 2024 pm 09:46 PM

Perisian Sina News menyediakan banyak maklumat tajuk berita, yang pada asasnya didorong oleh platform rasmi Kandungan setiap artikel berita adalah sahih Anda boleh meleret ke atas dan ke bawah untuk mencari dan menyemak imbas dengan satu klik, menjadikan suasana bacaan keseluruhan lebih selesa . Masukkan nombor telefon mudah alih anda untuk log masuk dalam talian Saluran berita dalam medan yang berbeza dibuka menyemak imbas. Kandungan berita adalah semua Jika anda berminat, anda juga boleh mematikan fungsi ekspres berita, supaya ia tidak akan terjejas Anda boleh membukanya pada bila-bila masa dan pratonton tajuk berita besar-besaran Sekarang editor akan menyediakan butiran kepada pengguna Sina News dalam talian Langkah-langkah operasi fungsi penghantaran ekspres. Cari Berita Sina dan klik pada sudut kanan bawah

Penjelasan terperinci tentang cara mematikan Pusat Keselamatan Windows 11 Penjelasan terperinci tentang cara mematikan Pusat Keselamatan Windows 11 Mar 27, 2024 pm 03:27 PM

Dalam sistem pengendalian Windows 11, Pusat Keselamatan ialah fungsi penting yang membantu pengguna memantau status keselamatan sistem, mempertahankan daripada perisian hasad dan melindungi privasi peribadi. Walau bagaimanapun, kadangkala pengguna mungkin perlu mematikan Pusat Keselamatan buat sementara waktu, seperti semasa memasang perisian tertentu atau melakukan penalaan sistem. Artikel ini akan memperkenalkan secara terperinci cara untuk mematikan Pusat Keselamatan Windows 11 untuk membantu anda mengendalikan sistem dengan betul dan selamat. 1. Bagaimana untuk mematikan Pusat Keselamatan Windows 11 Dalam Windows 11, mematikan Pusat Keselamatan tidak

Cara menutup pembayaran tanpa kata laluan dalam tutorial Kuaishou Kuaishou tentang cara menutup pembayaran tanpa kata laluan Cara menutup pembayaran tanpa kata laluan dalam tutorial Kuaishou Kuaishou tentang cara menutup pembayaran tanpa kata laluan Mar 23, 2024 pm 09:21 PM

Kuaishou ialah pemain video yang sangat baik Fungsi pembayaran tanpa kata laluan di Kuaishou sangat dikenali oleh semua orang. Ia boleh membantu kami dalam kehidupan seharian, terutamanya apabila membeli barangan yang kami perlukan di platform . Sekarang kita perlu membatalkannya. Bagaimana kita boleh membatalkan fungsi pembayaran tanpa kata laluan dengan berkesan itu bersama-sama. Mari kita lihat keseluruhan panduan di laman web ini, saya harap ia dapat membantu semua orang. Tutorial tentang cara menutup pembayaran tanpa kata laluan di Kuaishou 1. Buka aplikasi Kuaishou dan klik pada tiga garisan mendatar di sudut kiri atas. 2. Klik Kuaishou Store. 3. Dalam bar pilihan di atas, cari pembayaran tanpa kata laluan dan klik padanya. 4. Klik untuk menyokong

Penjelasan terperinci tentang cara mematikan perlindungan masa nyata dalam Pusat Keselamatan Windows Penjelasan terperinci tentang cara mematikan perlindungan masa nyata dalam Pusat Keselamatan Windows Mar 27, 2024 pm 02:30 PM

Sebagai salah satu sistem pengendalian dengan bilangan pengguna terbesar di dunia, sistem pengendalian Windows sentiasa digemari oleh pengguna. Walau bagaimanapun, apabila menggunakan sistem Windows, pengguna mungkin menghadapi banyak risiko keselamatan, seperti serangan virus, perisian hasad dan ancaman lain. Untuk mengukuhkan keselamatan sistem, sistem Windows mempunyai banyak mekanisme perlindungan keselamatan terbina dalam, salah satunya ialah fungsi perlindungan masa nyata Pusat Keselamatan Windows. Hari ini, kami akan memperkenalkan secara terperinci cara mematikan perlindungan masa nyata dalam Pusat Keselamatan Windows. Mula-mula, mari

Bagaimanakah saya boleh menghidupkan mod mesej peribadi apabila pihak lain dalam mesej peribadi TikTok telah mematikan mod mesej peribadi? Bolehkah saya melihat sama ada orang yang saya hantar mesej peribadi telah mematikan mod mesej peribadi? Bagaimanakah saya boleh menghidupkan mod mesej peribadi apabila pihak lain dalam mesej peribadi TikTok telah mematikan mod mesej peribadi? Bolehkah saya melihat sama ada orang yang saya hantar mesej peribadi telah mematikan mod mesej peribadi? Mar 28, 2024 am 08:01 AM

Douyin ialah platform sosial video pendek popular yang membolehkan pengguna merakam kehidupan mereka dan berkongsi kebahagiaan mereka. Fungsi pemesejan peribadi memainkan peranan penting dalam Douyin dan merupakan salah satu cara utama untuk pengguna berinteraksi antara satu sama lain. Kadangkala, pengguna mungkin menghadapi situasi di mana pihak lain telah mematikan mod mesej peribadi, mengakibatkan ketidakupayaan untuk menghantar mesej. 1. Bagaimanakah saya boleh menghidupkan mod mesej peribadi jika pihak lain dalam mesej peribadi Douyin telah mematikan mod mesej peribadi? 1. Sahkan sama ada pihak lain telah mendayakan tetapan privasi Pertama, kami harus mengesahkan sama ada pihak lain telah mendayakan tetapan privasi, yang mungkin telah menyekat penerimaan mesej peribadi. Jika mereka mempunyai tetapan yang hanya membenarkan mesej peribadi daripada kenalan, kami boleh cuba menghubungi mereka melalui cara lain, seperti melalui rakan bersama atau interaksi di platform media sosial. 2. Hantar permintaan rakan Jika pihak lain belum menghidupkan tetapan privasi, maka kami

Bagaimana untuk mematikan Pusat Keselamatan dalam Windows 11 Bagaimana untuk mematikan Pusat Keselamatan dalam Windows 11 Mar 28, 2024 am 10:21 AM

Windows 11 ialah versi sistem pengendalian terkini yang dilancarkan oleh Microsoft Berbanding dengan versi sebelumnya, Windows 11 mempunyai pengurusan dan pemantauan keselamatan sistem yang lebih ketat. Pusat Keselamatan boleh membantu pengguna mengurus dan memantau status keselamatan sistem untuk memastikan sistem dilindungi daripada perisian hasad dan ancaman keselamatan lain. Walaupun Pusat Keselamatan penting untuk melindungi keselamatan sistem, kadangkala pengguna mungkin mahu mematikan Pusat Keselamatan kerana keperluan peribadi atau sebab lain. Artikel ini akan memperkenalkan cara menggunakan W

Di mana untuk mematikan Dolby Atmos dalam opporeno5_Bagaimana untuk melumpuhkan Dolby Atmos dalam opporeno5 Di mana untuk mematikan Dolby Atmos dalam opporeno5_Bagaimana untuk melumpuhkan Dolby Atmos dalam opporeno5 Mar 25, 2024 pm 04:41 PM

1. Klik Bunyi dan Getaran dalam tetapan telefon. 2. Klik Dolby Atmos. 3. Matikan suis di belakang Dolby Atmos.

See all articles