>  기사  >  백엔드 개발  >  Laravel에서 Ajax 요청을 통해 CSRF 토큰을 전달하는 방법은 무엇입니까?

Laravel에서 Ajax 요청을 통해 CSRF 토큰을 전달하는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-09-10 15:09:021758검색

CSRF는 Cross-Site Request Forgery를 의미합니다. CSRF는 승인되지 않은 사용자가 승인된 것처럼 가장하여 수행하는 악의적인 활동입니다.

Laravel은 각 활성 사용자 세션에 대해 csrf 토큰을 생성하여 이러한 악의적인 활동으로부터 보호합니다. 토큰은 사용자 세션에 저장됩니다. 세션이 변경되면 항상 다시 생성되므로 권한 있는 사용자가 작업을 수행하고 있는지 확인하기 위해 매 세션마다 토큰이 확인됩니다. 다음은 csrf_token에 접근하는 예시입니다.

csrf 토큰 생성

토큰은 두 가지 방법으로 얻을 수 있습니다.

  • $requestsession()token()

  • 을 사용하여
  • csrf_token() 메소드를 직접 사용하세요

으아아아

출력

위의 출력은 -

으아아아

블레이드 템플릿의 CSRF 토큰

html 형식에서 POST, PUT, PATCH, DELETE를 사용해야 할 때마다 html 형식에서 csrf 토큰을 숨겨진 필드로 사용해야 합니다. 이렇게 하면 CSRF 미들웨어 보호를 통해 요청이 보호됩니다.

블레이드 템플릿에서는 @csrf 지시어를 사용하여 아래와 같이 나중에 숨겨진 필드로 저장할 수 있는 csrf 토큰을 생성할 수 있습니다. -

으아아아

hello.blade.php

으아아아

Laravel에서 Ajax 요청을 통해 CSRF 토큰을 전달하는 방법은 무엇입니까?

Ajax 요청에 csrf 토큰 사용

Ajax 요청이 여기에서 사용되며 csrf 토큰이 전달됩니다. Ajax에서 csrf 토큰 사용하기 아래와 같이 HTML의 헤드 섹션에 csrf 토큰을 추가해야 합니다 -

으아아아

우리는 $.ajaxSetup() 및 $.ajax를 사용하여 ajax 호출을 할 것이므로 html에 jquery 파일을 포함시킵니다.

으아아아

나중에 아래와 같은 헤더를 사용하여 ajaxsetup을 호출하세요 -

으아아아

이제 아래와 같이 ajax 호출을 해보세요 -

으아아아

ajaxtest.blade.php의 전체 코드는 -

입니다. 으아아아

AjaxCSRFController.php

으아아아

routes/web.php

에서 CSRF 테스트를 위한 경로를 생성하세요. 으아아아

이제 브라우저에서 URL http://localhost:8000/ajaxtest을 클릭하면 다음과 같은 결과가 표시됩니다. -

Laravel에서 Ajax 요청을 통해 CSRF 토큰을 전달하는 방법은 무엇입니까?

위 내용은 Laravel에서 Ajax 요청을 통해 CSRF 토큰을 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제