前言
本文主要給大家介紹了關(guān)于Laravel框架中VerifyCsrfToken報(bào)錯(cuò)問題的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。
報(bào)錯(cuò)情況
form 表單進(jìn)行 post 方式提交數(shù)據(jù)時(shí),遇到如下的報(bào)錯(cuò)情況.
TokenMismatchException in VerifyCsrfToken.php line 67: in VerifyCsrfToken.php line 67 at VerifyCsrfToken->handle(object(Request), object(Closure))
post 數(shù)據(jù)提交報(bào)錯(cuò)
原因
Laravel 推薦在全局注冊(cè) VerifyCsrfToken 的 Middleware ,對(duì)所有 Post,Put,Delete 請(qǐng)求自動(dòng)校驗(yàn)是否帶合法的 _csrf token。
解決方法
方法 1.在form表單中添加如下的隱藏域代碼
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
方法 2.在form表單中添加 csrf_field
(與上述解決方法功能一致)
{!! csrf_field() !!}
方法 3.注釋 Kernel.php 代碼
打開 app\Http\Kernel.php,在文件中注釋掉下面的代碼
\App\Http\Middleware\VerifyCsrfToken::class
方法 4. 修改handle()方法
打開 \app\Http\Middleware\VerifyCsrfToken.php,添加或修改 handle()方法如下:
public function handle($request, \Closure $next) { // 使用CSRF //return parent::handle($request, $next); // 禁用CSRF return $next($request); }
補(bǔ)充 csrf 介紹
csrf 圖解釋義
參考文章
1. Laravel 5.3 文檔 - CSRF攻擊原理及其防護(hù)
2. Laravel 5.3 文檔 - HTTP層 CSRF保護(hù)
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)的支持。