Laravel 5.5 이전에 Laravel은 기본적으로 토큰 기반 CSRF 보호를 통해 응용 프로그램 보안을 보장했습니다. 그러나 일부 개발 시나리오에서는 추가 복잡성을 피하기 위해이 보호를 해제해야 할 수도 있습니다. kernel.php 파일을 수정하여이를 수행 할 수 있습니다.
먼저 앱 \ http \ kernel.php 파일을 열고 $ middlewaregroups 속성에서 웹 구성 배열을 찾은 다음 다음 코드를 추가하십시오.
protected $middlewareGroups = [
'web' => [
// ...
App\Http\Middleware\VerifyCsrfToken::class => function ($request, $next) {
return $next($request);
},
],
];
verifycsrftoken :: 클래스 미들웨어를 익명 함수로 정의함으로써 토큰 기반 CSRF 보호를 성공적으로 끕니다.
특정 경로에서 CSRF 보호를 비활성화하려는 경우 Laravel은 CSRF_Exempt 메소드를 제공하여 경로 정의에서 CSRF 보호를 별도로 끕니다. 예를 들어:
Route::post('/api/posts', [
'middleware' => 'auth.basic',
'uses' => 'PostController@store',
])->csrf_exempt();
이 방법을 사용하면 지정된 경로에서 CSRF 보호를 비활성화 할 수 있습니다.
마지막으로, verifycsrftoken.php 파일을 수정하여 전체 CSRF 가드 구성 요소를 닫을 수도 있습니다. 파일은 앱 \ http \ middleware 디렉토리에 있습니다. 파일을 열고 핸들 메소드에서 코드를 댓글을 달아주십시오.
class VerifyCsrfToken extends Middleware
{
protected $except = [];
public function handle($request, Closure $next)
{
// return parent::handle($request, $next);
return $next($request);
}
}
parent :: handle ($ request, $ next)을 댓글을 달아 전체 CSRF 가드 구성 요소를 닫을 수 있습니다.
CSRF 보호를 끄면 일부 개발 문제가 해결 될 수 있지만 보안 위험도 발생할 수 있습니다. 다른 보안 조치를 취하거나 개발 환경에서 종료하기 위해 문을 닫을 때주의를 기울여야합니다. 필요한 경우 코드를 백업하거나 다른 안전한 솔루션을 선택하십시오.