2016-06-25 28 views
0

按照LaravelWebsite在Laravel哪個中間件觸發第一CSRF或AUTH

Laravel將首先驗證用戶是火

Auth中間件,然後火CSRF中間件。

但是,如果登錄頁面是一個釣魚頁面,如果首先檢查請求是否來自我們自己的網站,然後檢查用戶身份驗證是否更自然?

有人可以對此發出一些反應。

由於

任何幫助,將理解

回答

1

Laravel Request Lifecycle page

首先請求被傳遞到中間件,其是通過在app/Http/kernel.php定義的每個請求被處理。 此時應用CSRF中間件

的HTTP內核還定義HTTP中間件的列表,所有 請求必須由應用程序處理之前通過。 這些中間件處理讀取和寫入HTTP會話, 確定應用程序是否處於維護模式,驗證CSRF令牌等等。

然後請求將被傳遞給路由器。路由器然後將施加路由特定的中間件。這意味着,驗證碼也適用於此。

一旦應用程序已經被自舉和 已註冊的所有服務提供者,請求將被移交到路由器 調度。路由器會將請求發送到路由或控制器,並運行任何路由特定的中間件。

希望你得到了答案。

+0

所以根據您也都在說,CSRF中間件將首先被解僱?,相反,這個文檔https://laravel.com/docs/master/routing#csrf-protection說第一個身份驗證會發生然後CSRF令牌被檢查? 。我錯過了什麼嗎? – Vikram

+0

「此令牌用於驗證經過身份驗證的用戶是實際嚮應用程序發出請求的用戶。」這是你的意思我猜?它通過身份驗證在這裏說的不像用戶登錄。 CSRF(跨站點請求僞造)令牌的目的是爲了避免**未經授權的**方訪問您的應用程序。也就是說,只有位於您的應用內的組件才能向您的應用發送有效的請求。其他人被拒絕。這是一項安全措施。順便說一句,請求生命週期是你應該參考的,以瞭解發生了什麼。 –

+0

仍然我不明白'認證用戶'在該文檔中的含義。今天,一位訪員正在辯論Laravel首次認證用戶,然後CSRF被檢查。我認爲他從我提出的問題鏈接中讀到。那麼AUthenticaTED用戶意味着什麼呢? – Vikram

0

按照laravel文檔。首先應用網絡中間件,然後將請求傳遞給其他中間件,如身份驗證等,除非您更改它。

參考:

的VerifyCsrfToken中間件,其包括在網絡中間件組中,將自動驗證在請求輸入令牌存儲在會話令牌相匹配。

請記住,Web中間件組由RouteServiceProvider自動應用到您的默認routes.php文件。

這裏的網絡中間件

/** 
* The application's route middleware groups. 
* 
* @var array 
*/ 
protected $middlewareGroups = [ 
    'web' => [ 
     \App\Http\Middleware\EncryptCookies::class, 
     \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
     \Illuminate\Session\Middleware\StartSession::class, 
     \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
     \App\Http\Middleware\VerifyCsrfToken::class, 
    ], 

    'api' => [ 
     'throttle:60,1', 
     'auth:api', 
    ], 
]; 
相關問題