>PHP 프레임워크 >Laravel >Laravel 5.7은 라우팅에 접근할 수 없습니다

Laravel 5.7은 라우팅에 접근할 수 없습니다

WBOY
WBOY원래의
2023-05-20 15:59:39588검색

Laravel 5.7이 출시되면서 많은 사용자들이 액세스 라우팅 문제를 보고했습니다. 이 문제의 출현으로 인해 개발 과정에서 많은 시간을 낭비하게 될 수 있습니다. 이 문제를 해결하는데 도움을 주기 위해, 이 글에서는 Laravel 5.7이 라우팅에 접근할 수 없는 문제에 대한 해결 방법을 자세히 소개하겠습니다.

먼저 Laravel 5.7의 몇 가지 새로운 변경 사항을 이해해야 합니다. 이로 인해 이전 코드가 제대로 실행되지 않을 수 있습니다. 가장 중요한 변경 사항 중 하나는 CSRF 보호 미들웨어가 기본적으로 추가된다는 것입니다. 이 미들웨어는 사용자가 제출한 양식 데이터가 애플리케이션에서 제공되었는지 확인하고 CSRF 공격으로부터 애플리케이션을 방지할 수 있습니다.

CSRF 보호 미들웨어는 Laravel 5.6에 이미 존재하지만 기본적으로 활성화되어 있지 않습니다. 그러나 Laravel 5.7에서는 Laravel 팀이 기본적으로 이 미들웨어를 활성화했습니다. 따라서 Laravel 5.7에서는 양식을 사용하여 데이터를 제출할 때 CSRF 토큰을 추가해야 합니다.

해결책:

Laravel 5.7에서 라우팅에 액세스할 수 없는 문제를 해결하는 방법에는 두 가지가 있습니다. 첫 번째 방법은 web.php 파일에 CSRF 토큰을 추가하는 것입니다. 두 번째 방법은 CSRF 보호 미들웨어를 비활성화하는 것입니다.

방법 1: web.php 파일에 CSRF 토큰을 추가합니다.

웹 미들웨어 그룹은 Laravel 5.7 코드의 RouteServiceProvider.php에서 기본적으로 사용됩니다. 따라서 웹에서 CSRF 토큰을 추가하는 가장 쉬운 방법입니다. php 파일은 {{ csrf_field() }} 메소드를 사용하세요.

예를 들어 POST 요청을 처리하는 경로가 있는 경우:

Route::post('/foo', function () {

return 'Hello World';

});

다음에 {{ csrf_field() }를 추가해야 합니다. the form } CSRF 토큰을 생성하는 방법:

4d7a02db55d48fb4795b6f9a4532230c

{{ csrf_field() }}
<!-- ... -->

f5a47148e367a6035fd7a2faa965022e

이 방법을 사용하면 Laravel 5.7 애플리케이션이 POST를 정상적으로 처리할 수 있습니다. .

방법 2: CSRF 보호 미들웨어 비활성화

CSRF 보호 미들웨어 비활성화는 Laravel 5.7이 라우팅에 액세스할 수 없는 문제를 해결하는 또 다른 방법입니다. 이 접근 방식은 Laravel 애플리케이션의 보안을 약간 저하시킬 수 있지만 애플리케이션이 CSRF 공격의 위험에 노출되지 않은 경우 가능합니다.

CSRF 보호 미들웨어를 비활성화하려면 검증CsrfToken 클래스의 $just 속성에 무시할 URI를 추가해야 합니다.

app/Http/Middleware/VerifyCsrfToken.php 파일을 열고 $just 속성에 무시하려는 경로를 추가하세요.

protected $just = [

'your-route-to-ignore'

];

예를 들어, "등록" 경로를 무시하세요.

protected $just = [

'register'

];

이 방법을 사용하면 Laravel 5.7 애플리케이션이 모든 요청을 정상적으로 처리할 수 있습니다.

결론:

일반적으로 Laravel 5.7에서 경로에 액세스할 수 없는 문제는 주로 CSRF 보호 미들웨어가 기본적으로 활성화되어 있기 때문에 발생합니다. 따라서 개발 중에 이 문제가 발생하면 이 두 가지 방법을 시도하여 해결할 수 있습니다. CSRF 보호 미들웨어를 비활성화하려면 민감하거나 중요한 데이터와 관련되지 않은 경로에만 사용해야 합니다. 이 방법은 Laravel 애플리케이션의 보안을 약간 저하시킬 수 있으므로 애플리케이션의 보안을 보장하기 위해 방법 1을 사용하는 것이 좋습니다.

위 내용은 Laravel 5.7은 라우팅에 접근할 수 없습니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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