>  기사  >  백엔드 개발  >  Laravel POST 및 PUT 요청에서 419 상태 코드를 언제 어떻게 처리합니까?

Laravel POST 및 PUT 요청에서 419 상태 코드를 언제 어떻게 처리합니까?

DDD
DDD원래의
2024-10-18 20:33:30906검색

When and How to Handle the 419 Status Code in Laravel POST and PUT Requests?

POST 및 PUT 메서드용 Laravel API의 419 상태 코드 이해

Laravel을 사용하여 RESTful API를 개발할 때 419 오류를 자주 접하게 됩니다. POST 또는 PUT 요청을 할 때의 상태 코드입니다. 이 상태 코드는 유효한 CSRF 토큰이 부족하여 요청이 거부되었음을 나타냅니다.

근본 원인

기본적으로 Laravel은 교차로부터 보호하기 위해 CSRF 토큰을 사용합니다. -사이트 요청 위조(CSRF) 공격. API 경로에 웹 미들웨어 그룹을 사용하는 경우 CSRF 확인이 활성화되고 애플리케이션 상태(예: POST 또는 PUT)를 수정하는 모든 요청에는 유효한 토큰이 필요합니다.

비웹의 경우 -기반 API

웹 브라우저(예: 모바일 앱 또는 명령줄 도구)에서 사용하지 않는 API를 개발하는 경우 이러한 환경은 CSRF 보호가 필요하지 않습니다. 일반적으로 CSRF 공격에 취약하지 않습니다.

웹 기반이 아닌 API에 대한 CSRF 확인을 비활성화하려면 Routes/web.php 파일에서 웹 미들웨어 그룹 외부로 API 경로를 이동하거나 api.php를 사용할 수 있습니다. 대신 파일. api.php에서는 CSRF 검증이 자동으로 비활성화됩니다.

웹 기반 API의 경우

웹 브라우저에서 액세스할 API를 개발하는 경우 CSRF 확인에서 전체 API 경로 그룹을 제외하는 것을 피하고 싶을 수도 있습니다. 대신, CSRF 공격의 대상이 되지 않을 것으로 알고 있는 특정 경로를 선택적으로 제외할 수 있습니다.

이렇게 하려면 해당 경로를 verifyCsrfToken 미들웨어의 $just 배열에 추가하세요.

<code class="php">namespace App\Http\Middleware;

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

class VerifyCsrfToken extends BaseVerifier
{
    protected $except = [
        '/api/stripe/*',
        '/api/non-susceptible-route',
    ];
}</code>

이 접근 방식을 사용하면 대부분의 API 경로에 대해 CSRF 보호를 유지하면서 CSRF 공격의 대상이 될 가능성이 없는 특정 경로를 제외할 수 있습니다.

위 내용은 Laravel POST 및 PUT 요청에서 419 상태 코드를 언제 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.