Laravel API는 POST 및 PUT 메서드에서 419 상태 코드를 반환합니다.
Laravel을 사용하여 RESTful API를 개발하려고 하면 POST 및 PUT에서 419 상태 코드가 나타날 수 있습니다. 행동 양식. 이 문제는 CSRF(교차 사이트 요청 위조) 공격을 방지하는 것을 목표로 하는 Laravel의 CSRF 보호로 인해 발생합니다.
근본 원인
Laravel의 web.php 경로는 기본적으로 CSRF 토큰으로 보호됩니다. CSRF 토큰은 요청이 악의적인 사용자가 아닌 합법적인 소스에서 오는지 확인하는 방법입니다. POST 또는 PUT 요청에 올바른 CSRF 토큰이 포함되어 있지 않으면 Laravel은 419 상태 코드를 반환합니다.
해결책 1: CSRF 보호에서 경로 제외
API에 web.php 경로를 사용하는 경우 엔드포인트를 검증CsrfToken 미들웨어의 $Exception 속성에 추가하여 CSRF 보호에서 제외할 수 있습니다.
<code class="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 = [ 'api/*', // Exclude all API routes from CSRF protection ]; }</code>
해결책 2: API 경로에 api.php 사용
다음과 같은 경우 Laravel 버전 5.4 이상을 사용하는 경우 API 경로에 api.php 파일을 사용하는 것이 좋습니다. api.php에 정의된 경로는 CSRF 보호에서 자동으로 제외됩니다.
해결책 3: 특정 방법에 대한 CSRF 보호 비활성화
경로 그룹 내의 특정 방법에 대해 CSRF 보호를 비활성화할 수 있습니다.
<code class="php">Route::group(['middleware' => ['api', 'without_csrf_token']], function () { Route::post('/store', 'RestController@store'); Route::put('/update/{id}', 'RestController@update'); });</code>
결론
CSRF 보호에서 경로를 제외하거나 특정 방법에 대해 비활성화하면 419 상태 코드 문제를 해결할 수 있습니다. CSRF 보호는 사용자가 제출한 양식에 대한 중요한 보안 조치이므로 필요한 경우에만 비활성화하는 것을 잊지 마십시오.
위 내용은 CSRF 보호로 인해 Laravel의 POST 및 PUT 메서드에 대한 419 상태 코드를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

thesecrettokeepingAphp-poweredwebsiterunningsmoothlydlyUnderHeavyloadInvolvesEveralKeyStrategies : 1) ubstractOpCodeCachingWithOpCacheTecescripteExecutionTime, 2) usedatabasequeryCachingwithRedSendatabaseload, 3) LeverAgeCdnslikeCloudforforporerververforporporpin

Code는 코드가 더 명확하고 유지 관리하기 쉽기 때문에 의존성 주입 (DI)에 관심을 가져야합니다. 1) DI는 클래스를 분리하여 더 모듈 식으로 만들고, 2) 테스트 및 코드 유연성의 편의성을 향상시키고, 3) DI 컨테이너를 사용하여 복잡한 종속성을 관리하지만 성능 영향 및 순환 종속성에주의를 기울이십시오. 4) 모범 사례는 추상 인터페이스에 의존하여 느슨한 커플 링을 달성하는 것입니다.

예, PPAPPLICATIONISPOSSIBLEADESLESTION.1) INVERECINGUSINGAPCUTERODUCEDABASELOAD.2) INCODINCEDEXING, ENGICIONEQUERIES 및 CONNECTIONPOULING.3) 향상된 보드 바이어링, 플로 팅 포르코 잉을 피하는 최적화 된 APPCUTERODECEDATABASELOAD.2)

theKeyStrategiesToSINCINTIFILINTINTIFILINTINTHPPORMATIONPERFORMANCEARE : 1) USEOPCODECACHING-CCHACHETEDECUTECUTINGTIME, 2) 최적화 된 ABESINSTEMENTEMENDSTEMENTEMENDSENDSTATEMENTENDS 및 PROPERINDEXING, 3) ConfigureWebSerVERSLIKENGINXXWITHPMFORBETPERMERCORMANCES, 4)

aphpdectionenceindectioncontainerisatoolthatmanagesclassdependencies, 향상 Codemodularity, testability 및 maintainability.itactAsacentralHubForCreatingAndingDinjectingDingingDingingdecting.

대규모 응용 프로그램의 경우 SELLENCIONINGESS (DI)를 선택하십시오. ServicElocator는 소규모 프로젝트 또는 프로토 타입에 적합합니다. 1) DI는 생성자 주입을 통한 코드의 테스트 가능성과 모듈성을 향상시킵니다. 2) Servicelocator는 센터 등록을 통해 서비스를 얻습니다. 이는 편리하지만 코드 커플 링이 증가 할 수 있습니다.

phPapplicationSCanBeoptimizedForsPeedandefficiencyby : 1) ENABLEOPCACHEINPHP.INI, 2) PREPAREDSTATEMENTSWITHPDOFORDATABASEQUERIES 사용

phpeMailValidationInvoLvestHreesteps : 1) formatValidationUsingRegularexpressionsTochemailformat; 2) dnsValidationToErethedomainHasaValidMxRecord; 3) smtpvalidation, theSTHOROUGHMETHOD, theCheckSiftheCefTHECCECKSOCCONNECTERTETETETETETETWERTETWERTETWER


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

드림위버 CS6
시각적 웹 개발 도구