PHP/Error

[Laravel] 419 error csrf 보호에서 특정 주소 무시하기

DSeung 2022. 9. 2. 17:57

라라벨 개발 중 내부에서 동작하는 form에 경우 @csrf를 쉽게 추가할 수 있습니다.

하지만 외부 모듈과의 연동 중 외부 모듈에서 내부로 들어오는 경우 @csrf 추가하기가 힘이 듭니다.

더불어 postman 같은 외부 프로그램으로 테스트시에도 문제가 생기죠.

 

그럴 경우 이 방법을 통해 특정 주소에 대한 @csrf 보호를 제외시킬 수 있습니다.

app/Http/Middleware/VerifyCsrfToken.php

<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
{

    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array<int, string>
     */
    protected $except = [
        "https://laravel.test/csrf", // 이제 해당 csrf 경로는 csrf 보호를 받지 않습니다.
        "https://laravel.test/*", // 또한 와일드 카드 또한 작동합니다.
    ];
}

서버 환경에 따라 절대 주소가 아닌 상대 주소가 작동하는 경우가 존재합니다.

그럴 경우 아래처럼 상대 주소를 추가해줍시다.

    protected $except = [
        "/csrf"
    ];

 

반응형