> PHP 프레임워크 > Laravel > laravel은 토큰 확인을 끕니다

laravel은 토큰 확인을 끕니다

PHPz
풀어 주다: 2023-05-29 12:55:07
원래의
875명이 탐색했습니다.

Laravel은 개발자가 웹 애플리케이션을 빠르고 효율적으로 구축하는 데 도움이 되는 다양한 편리한 기능과 도구를 제공하는 인기 있는 PHP 프레임워크입니다. 중요한 기능 중 하나는 사용자 정보가 불법적으로 접근되거나 수정되지 않도록 하는 보안 메커니즘인 토큰 검증입니다. 그러나 때때로 개발자는 토큰 확인을 일시적으로 꺼야 합니다. 이 글에서는 Laravel에서 토큰 확인을 끄는 방법을 소개합니다.

1. 토큰 인증을 끄는 이유는 무엇인가요?

Laravel에서는 토큰 확인이 기본적으로 활성화되어 있습니다. 사용자가 웹 애플리케이션을 통해 로그인하거나 등록하면 Laravel은 사용자의 신원을 확인하고 악의적인 공격을 방지하기 위해 자동으로 토큰을 생성합니다. 이를 통해 웹 애플리케이션의 보안을 향상하고 잠재적인 위험을 줄일 수 있습니다.

그러나 경우에 따라 개발자는 토큰 확인을 일시적으로 꺼야 할 수도 있습니다. 예를 들어 개발자가 테스트하거나 디버깅할 때 토큰 확인을 끄면 개발 속도와 효율성이 향상될 수 있습니다. 또한 경우에 따라 타사 API를 호출하거나 다른 시스템을 통합할 때 토큰 확인을 일시적으로 비활성화해야 합니다.

2. 토큰 인증을 끄는 방법은 무엇입니까?

Laravel에서는 두 가지 방법으로 토큰 확인을 끌 수 있습니다.

  1. 미들웨어에서 토큰 확인 끄기

미들웨어는 Laravel의 매우 강력한 기능이며 HTTP 요청 및 응답을 처리하는 데 사용할 수 있습니다. Laravel에서는 토큰 검증이 미들웨어에서 구현됩니다. 따라서 토큰 확인 동작은 미들웨어에서 수정될 수 있습니다.

토큰 확인을 끄려면 AppHttpMiddlewareVerifyCsrfToken.php 파일을 편집하여 다음 코드로 변환하면 됩니다.

<?php

namespace AppHttpMiddleware;

use IlluminateFoundationHttpMiddlewareVerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        //
    ];

    /**
     * Determine if the session and input CSRF tokens match.
     *
     * @param  IlluminateHttpRequest  $request
     * @return bool
     */
    protected function tokensMatch($request)
    {
        return true;
    }
}
로그인 후 복사

위 코드에서는 tokensMatch() 함수를 재정의하여 토큰 확인을 끕니다. tokensMatch() 함수는 입력된 토큰이 Session의 토큰과 일치하는지 비교하는 데 사용되는 함수입니다. true를 반환하면 토큰 확인이 비활성화됩니다.

이 방법은 완전히 안전하지는 않습니다. 토큰 검증을 끄면 웹 애플리케이션이 CSRF 공격에 취약해집니다. 따라서 테스트 및 개발 중에만 사용하는 것이 좋습니다.

  1. 경로에서 토큰 확인 끄기

토큰 확인을 끄는 또 다른 방법은 경로에서 WithoutMiddleware() 함수를 사용하는 것입니다. 이 기능은 토큰 확인 미들웨어를 포함하여 특정 미들웨어를 건너뛰는 데 도움이 될 수 있습니다.

withoutMiddleware() 함수를 사용하려면 라우팅을 통해 지정된 컨트롤러와 함수를 호출해야 합니다. 예:

Route::get('/example', 'ExampleController@exampleFunction')->withoutMiddleware(['auth', 'csrf']);
로그인 후 복사

위 코드에서는 WithoutMiddleware() 함수를 사용하여 경로에서 토큰 확인 미들웨어를 제거합니다. 이를 통해 토큰 없이 HTTP 요청을 사용할 수 있습니다.

이 방법 역시 보안 취약점이 있다는 점에 유의하시고, 필요할 때 사용하시는 것을 권장드립니다.

3. 토큰 확인 켜기

테스트를 완료하거나 토큰 확인을 비활성화한 후에는 웹 애플리케이션의 보안을 보장하기 위해 토큰 확인을 켜는 것이 좋습니다. 동일한 방법을 사용하여 토큰 확인을 활성화할 수 있습니다. 수정된 코드를 삭제하면 됩니다.

Laravel에서는 토큰 유효성 검사를 활성화하는 것이 매우 간단합니다. verifyCsrfToken 미들웨어가 등록되어 있고 비활성화되지 않았는지 확인하세요.

<?php

namespace AppHttp;

use IlluminateFoundationHttpKernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * @var array
     */
    protected $middleware = [
        IlluminateFoundationHttpMiddlewareCheckForMaintenanceMode::class,
        IlluminateFoundationHttpMiddlewareValidatePostSize::class,
        AppHttpMiddlewareTrimStrings::class,
        IlluminateFoundationHttpMiddlewareConvertEmptyStringsToNull::class,
    ];

    /**
     * The application's route middleware.
     *
     * @var array
     */
    protected $routeMiddleware = [
        'auth' => AppHttpMiddlewareAuthenticate::class,
        'auth.basic' => IlluminateAuthMiddlewareAuthenticateWithBasicAuth::class,
        'bindings' => IlluminateRoutingMiddlewareSubstituteBindings::class,
        'can' => IlluminateAuthMiddlewareAuthorize::class,
        'guest' => AppHttpMiddlewareRedirectIfAuthenticated::class,
        'signed' => IlluminateRoutingMiddlewareValidateSignature::class,
        'throttle' => IlluminateRoutingMiddlewareThrottleRequests::class,
        'verified' => IlluminateAuthMiddlewareEnsureEmailIsVerified::class,
        'csrf' => AppHttpMiddlewareVerifyCsrfToken::class,
    ];
}
로그인 후 복사

위 코드를 보면 verifyCsrfToken 미들웨어가 'csrf' 미들웨어로 등록되어 기본적으로 작동하는 것을 확인할 수 있습니다.

4. 결론

토큰 검증은 악의적인 공격을 방지하고 사용자 데이터의 보안을 보호할 수 있는 Laravel의 매우 중요한 보안 메커니즘입니다. 그러나 때로는 개발 속도와 효율성을 높이기 위해 토큰 확인을 일시적으로 비활성화해야 할 수도 있습니다. 이 글에서는 Laravel에서 토큰 확인을 끄는 방법을 소개하고, 토큰 확인을 끄면 발생할 수 있는 보안 위험에 대해 알려드립니다. 이 기능은 개발 및 테스트 중에만 사용하는 것이 좋습니다. 프로덕션 환경에서는 웹 애플리케이션의 보안을 보장하기 위해 토큰 확인을 켜두어야 합니다.

위 내용은 laravel은 토큰 확인을 끕니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿