CSRF는 Cross-Site Request Forgery를 의미합니다. CSRF는 승인되지 않은 사용자가 승인된 것처럼 가장하여 수행하는 악의적인 활동입니다.
Laravel은 각 활성 사용자 세션에 대해 csrf 토큰을 생성하여 이러한 악의적인 활동으로부터 보호합니다. 토큰은 사용자 세션에 저장됩니다. 세션이 변경되면 항상 다시 생성되므로 권한 있는 사용자가 작업을 수행하고 있는지 확인하기 위해 매 세션마다 토큰이 확인됩니다. 다음은 csrf_token에 접근하는 예시입니다.
토큰은 두 가지 방법으로 얻을 수 있습니다.
$request→session()→token()
csrf_token() 메소드를 직접 사용하세요
위의 출력은 -
으아아아html 형식에서 POST, PUT, PATCH, DELETE를 사용해야 할 때마다 html 형식에서 csrf 토큰을 숨겨진 필드로 사용해야 합니다. 이렇게 하면 CSRF 미들웨어 보호를 통해 요청이 보호됩니다.
블레이드 템플릿에서는 @csrf 지시어를 사용하여 아래와 같이 나중에 숨겨진 필드로 저장할 수 있는 csrf 토큰을 생성할 수 있습니다. -
hello.blade.php
으아아아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 토큰을 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!