CSRF는 웹 애플리케이션에 대한 교차 사이트 위조 공격을 나타냅니다. CSRF 공격은 인증된 시스템 사용자가 수행하는 무단 활동입니다. 따라서 많은 웹 애플리케이션이 이러한 공격에 취약합니다.
Laravel은 다음과 같은 방식으로 CSRF 보호를 제공합니다. −
Laravel에는 각 활성 사용자 세션에 대해 토큰을 생성하는 내장 CSRF 플러그인이 포함되어 있습니다. 이 토큰은 해당 인증된 사용자가 작업이나 요청을 보냈는지 확인합니다.
Laravel에서 CSRF 보호 구현은 이 섹션에서 자세히 설명합니다. CSRF 보호를 추가로 진행하기 전에 다음 사항에 주목할 필요가 있습니다. −
CSRF는 웹 애플리케이션 내부에 선언된 HTML 형식 내에서 구현됩니다. Laravel의 CSRF 보호 미들웨어가 요청을 검증할 수 있도록 숨겨진 검증된 CSRF 토큰을 양식에 포함해야 합니다. 구문은 아래와 같습니다 −
<form method = "POST" action="/profile"> {{ csrf_field() }} ... </form>
JavaScript HTTP 라이브러리를 사용하여 JavaScript 기반 애플리케이션을 편리하게 구축할 수 있습니다. 여기에는 모든 나가는 요청에 대한 CSRF 토큰이 포함되어 있습니다.
파일 이름은 resources/assets/js/bootstrap.js이며 모든 항목을 등록합니다. Laravel 애플리케이션용 토큰이며 Axios HTTP 라이브러리와 함께 csrf-token을 저장하는 meta 태그를 포함합니다.
다음 코드 줄을 고려하세요. 두 개의 매개변수(email 및 message)를 입력으로 사용하는 양식을 보여줍니다.
<form><form><br/> <label> Email </label><br/> <input type = "text" name = "email"/><br/> <br/><br/> <label> Message </label> <input type="text" name = "message"/><br/> <input type = ”submit” name = ”submitButton” value = ”submit”><br/></form><!--입력--><!--입력--></form>
위 코드의 결과는 최종 사용자가 볼 수 있는 아래 양식입니다. −
위에 표시된 양식은 승인된 사용자의 모든 입력 정보를 허용합니다. 이로 인해 웹 애플리케이션이 다양한 공격에 취약해질 수 있습니다.
제출 버튼에는 컨트롤러 섹션의 기능이 포함되어 있습니다. postContact 함수는 해당 뷰에 대한 컨트롤러에서 사용됩니다. 아래에 표시되어 있습니다 −
public function postContact(Request $request) { return $request-> all(); }
양식에 CSRF 토큰이 포함되어 있지 않으므로 입력 매개변수로 공유되는 민감한 정보가 다양한 공격에 취약하다는 점에 유의하세요.
다음 코드 줄은 CSRF 토큰을 사용하여 다시 디자인된 양식을 보여줍니다. −
<form method = ”post” > {{ csrf_field() }} <label> Email </label> <input type = "text" name = "email"/> <br/> <label> Message </label> <input type = "text" name = "message"/> <input type = ”submit” name = ”submitButton” value = ”submit”> </form>
달성된 출력은 아래와 같이 토큰과 함께 JSON을 반환합니다. −
{ "token": "ghfleifxDSUYEW9WE67877CXNVFJKL", "name": "TutorialsPoint", "email": "contact@tutorialspoint.com" }
제출 버튼을 클릭하면 생성되는 CSRF 토큰입니다.
위 내용은 Laravel - CSRF 보호의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!