我想看看我可以在Laravel中禁用CSRF令牌,並且必須禁用它。這是好的禁用它或不?如何在Laravel中禁用CSRF令牌以及爲什麼我們必須禁用它?
2
A
回答
7
您可以通過編輯在幾條路線上禁用CSRF。
App\Http\Middleware\VerifyCsrfToken
和保護
$except = [] array.
這並不似乎是很好的做法,通過這樣做,我們卸下Laravel的安全功能添加自己的路線名稱。
1
您可以在web
-Middleware組中的app/http/Kernel.php
中將其禁用。
Is this good to disable it or not?
不,它不是。閱讀Wikipedia page about CSRF以瞭解CSRF是什麼,CSRF-Token可防止CSRF。
1
CSRF令牌可保護您的應用程序,並防止用戶受到跨站請求僞造。有關更多信息,這裏有一個閱讀:
https://en.wikipedia.org/wiki/Cross-site_request_forgery
令牌處於Laravel通過中間件驗證。如果您查看文件app/Http/Middleware/VerifyCsrfToken.php
,您會看到它可以讓您選擇應該免除CSRF驗證的網址。
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
//
];
}
如果你想完全禁用它,你可以找到它在app/Http/Kernel.php
命名web
中間件小組。這些是通過HTTP請求默認啓動的中間件。
雖然我不推薦禁用它。
1
嗨只要到應用程序/ HTTP/Kernel.php文件只是註釋掉行沒有31
// \App\Http\Middleware\VerifyCsrfToken::class,
0
只需打開kernel.php(應用程序/ HTTP) 和禁用
App\Http\Middleware\VerifyCsrfToken::class,
如果我們必須使用多個Ajax請求,然後顯示505內部服務器錯誤,因爲它會更改令牌值和不匹配。在那種情況下,我們需要做什麼? –
當然,但如果該功能無法使用或必須被黑客入侵,那麼這是一個有用的結果呢? – Benco