簡體   English   中英

為Laravel中的一組GET路由開啟CSRF保護

[英]Turn on CSRF protection for a group of GET routes in Laravel

我在 Laravel 上有以下一組GET路由:

Route::get('/location/get', 'Ajax@getProducts');
Route::get('/products/get', 'Ajax@getProducts');
Route::get('/schedule/get', 'Ajax@getProducts');

我想使用Laravel自動生成的CSRF令牌來保護這些路由。

我已經閱讀了一些關於覆蓋方法的變通方法: VerifyCsrfToken@isReading(...) ,但我對此不太相信。

然后我正在尋找一個更優雅的解決方案。

謝謝!

CSRF 不保護您的數據。 更多信息: https://security.stackexchange.com/a/115808

如果您沒有理由對 CSRF 使用 GET 方法,只需將 POST 與默認csrf中間件組一起使用:

Route::group(['before' => 'csrf'], function() {
    // your ::post routes
});

無論如何,您可以嘗試創建 VerifyCsrfTokenAll 中間件,並使用此答案中的csrf_get密鑰: https://stackoverflow.com/a/41656322/2453148然后將您的路由包裝在該組中:

Route::group(['before' => 'csrf_get'], function() {
    // your routes
});

我會堅持的最好的事情是將 @csrf 包含在您的刀片表格中。

 <form action=“{{ your route name }}” method=“GET”> @csrf </form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM