現在の位置: ホーム> 最新記事一覧> LARAVEL 5.5 CSRFトークン保護をオフにする3つの方法

LARAVEL 5.5 CSRFトークン保護をオフにする3つの方法

gitbox 2025-07-07

CSRFトークン保護をオフにする3つの方法

トークンに基づいてCSRF保護をオフにします

Laravel 5.5の前に、LaravelはデフォルトでトークンベースのCSRF保護を有効にして、アプリケーションのセキュリティを確保しました。ただし、一部の開発シナリオでは、この保護をさらに複雑にするためにオフにする必要がある場合があります。 kernel.phpファイルを変更することでこれを行うことができます。

まず、 App \ http \ kernel.phpファイルを開き、 $ middlewaregroupsプロパティでWeb構成配列を見つけ、次のコードを追加します。

 
protected $middlewareGroups = [
    'web' => [
        // ...
        App\Http\Middleware\VerifyCsrfToken::class => function ($request, $next) {
            return $next($request);
        },
    ],
];

verifycsrftoken :: class Middlewareを匿名関数として定義することにより、トークンベースのCSRF保護を正常にオフにします。

ルーティングレベルでCSRF保護をオフにします

特定のルートでCSRF保護のみを無効にする場合、LaravelはCSRF_Exemptメソッドを提供します。これにより、ルート定義でCSRF保護を個別にオフにすることができます。例えば:

 
Route::post('/api/posts', [
    'middleware' => 'auth.basic',
    'uses' => 'PostController@store',
])->csrf_exempt();

この方法を使用して、指定されたルートでCSRF保護を無効にすることができます。

CSRF保護コンポーネントをオフにします

最後に、 verifycsrftoken.phpファイルを変更して、CSRFガードコンポーネント全体を閉じることもできます。このファイルは、App \ http \ Middleware Directoryにあります。ファイルを開き、ハンドルメソッドのコードをコメントします。

 
class VerifyCsrfToken extends Middleware
{
    protected $except = [];

    public function handle($request, Closure $next)
    {
        // return parent::handle($request, $next);
        return $next($request);
    }
}

親::ハンドル($ request、$ next)にコメントすることで、CSRFガードコンポーネント全体を閉じることができます。

要約します

CSRF保護をオフにすると、いくつかの開発の問題が解決できますが、セキュリティリスクも発生する可能性があります。閉店時には、他のセキュリティ対策を講じたことを確認するか、開発環境でそれを閉鎖するように注意する必要があります。必要に応じて、コードをバックアップするか、別のより安全なソリューションを選択してください。