前言
本文主要給大家介紹了關于Laravel框架中VerifyCsrfToken報錯問題的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
報錯情況
form 表單進行 post 方式提交數(shù)據(jù)時,遇到如下的報錯情況.
TokenMismatchException in VerifyCsrfToken.php line 67: in VerifyCsrfToken.php line 67 at VerifyCsrfToken->handle(object(Request), object(Closure))
post 數(shù)據(jù)提交報錯
原因
Laravel 推薦在全局注冊 VerifyCsrfToken 的 Middleware ,對所有 Post,Put,Delete 請求自動校驗是否帶合法的 _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); }
補充 csrf 介紹
csrf 圖解釋義
參考文章
1. Laravel 5.3 文檔 - CSRF攻擊原理及其防護
2. Laravel 5.3 文檔 - HTTP層 CSRF保護
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對的支持。
【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學習交流,請勿用于商業(yè)用途。如損害你的權益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。