欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

laravel csrf驗(yàn)證總結(jié)

 更新時(shí)間:2021年03月18日 15:19:02   作者:小阿巳  
這篇文章主要介紹了laravel csrf驗(yàn)證總結(jié),csrf是laravel表單提交和ajax請(qǐng)求為了安全設(shè)置的機(jī)制,有感興趣的同學(xué)可以深入學(xué)習(xí)下

laravel csrf驗(yàn)證總結(jié)

前言問題:
laravel 在web路由下無論是表單提交啊 還是ajax請(qǐng)求啊 只要是請(qǐng)求方式不滿足 ['HEAD', 'GET', 'OPTIONS']
就會(huì)報(bào)419錯(cuò)誤,原因是其自帶開啟csrf驗(yàn)證,防止csrf攻擊
感興趣的可以看看這部分源碼:Illuminate\Foundation\Http\Middleware\VerifyCsrfToken

解決方式:

一.屏蔽csrf驗(yàn)證

部分屏蔽
App\Http\Middleware\VerifyCsrfToken.php
protected $except = [
//這里添加屏蔽的路由地址
];

全部屏蔽
App\Http\Kernel.php
注釋 \App\Http\Middleware\VerifyCsrfToken::class,

二.加入csrf驗(yàn)證參數(shù)

form提交

<input type="hidden" name="_token" value="{{csrf_token()}}">

ajax提交

<meta name="_token" content="{{csrf_token()}}">
$.ajax({
   url: "xxxx",
   type: "POST",
   data: data,
   headers: {
     'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
     },
   success: function (data) {}
  });

注意!!!

因?yàn)槟?laravel的token是存儲(chǔ)在session里的,所以呢,我遇到了一個(gè)大坑,代碼傳到linux里后 csrf總報(bào)錯(cuò)???
最后debug發(fā)現(xiàn) 因?yàn)樘峤坏膖oken值與session里的不一致
(md 因?yàn)?storag2目錄么權(quán)限 —>storage/framework/sessions 是存儲(chǔ)session的目錄)
開啟777就ok了

最后總結(jié)一下排錯(cuò)順序

1.檢查表單有沒有 csrf_token
2.linux 下storage有沒有讀寫權(quán)限
3.檢查session存儲(chǔ)位置時(shí)候更換過(換過里面還是否有_token)
4.清除瀏覽器緩存,laravel緩存
最后沒招 自己源碼debug吧

到此這篇關(guān)于laravel csrf驗(yàn)證總結(jié)的文章就介紹到這了,更多相關(guān)laravel csrf驗(yàn)證內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論