ValidateAntiForgeryToken: 목적 및 구현
MVC 웹 애플리케이션의 양식은 종종 CSRF(교차 사이트 요청 위조) 공격의 대상이 됩니다. CSRF 공격은 악성 웹사이트가 신뢰할 수 있는 웹사이트에 요청을 보내고 승인된 사용자의 브라우저를 속여 해당 요청을 제출하도록 속여 공격자가 승인되지 않은 작업을 수행할 수 있도록 허용할 때 발생합니다.
이 취약점을 해결하기 위해 .NET MVC 프레임워크는 ValidateAntiForgeryToken을 제공합니다. CSRF 공격을 방지하는 데 중요한 역할을 하는 속성입니다. 이 속성은 특정 작업 메서드에 제출된 양식이 실제로 외부 소스가 아닌 서버에서 생성되었는지 확인합니다.
ValidateAntiForgeryToken 작동 방식
작업 메서드가 다음과 같은 경우 ValidateAntiForgeryToken으로 장식된 MVC 프레임워크는 고유한 일회성 토큰을 생성하고 이를 사용하여 HTML 양식의 숨겨진 필드에 포함합니다. @Html.AntiForgeryToken() 도우미 메서드. 이 토큰은 사용자, 세션 및 브라우저에 고유합니다.
사용자가 양식을 제출하면 프레임워크는 숨겨진 필드의 토큰을 이전에 생성한 토큰과 비교합니다. 토큰이 일치하면 양식 제출의 유효성을 검사합니다. 그렇지 않으면 오류가 발생하고 제출이 거부되어 CSRF 공격이 완화됩니다.
사용 예
MVC 4에서 ValidateAntiForgeryToken 속성을 구현하려면 다음 단계를 따르세요.
원하는 액션방식을 꾸며보세요 [ValidateAntiForgeryToken] 속성으로 보호하려면:
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Create(MyModel model) { // Code to handle the form submission }
양식의 양식 태그 내에서 @Html.AntiForgeryToken()에 대한 호출을 추가합니다:
<form action="@Url.Action("Create", "MyController")" method="post"> @Html.AntiForgeryToken() <!-- Other form controls --> </form>
참고: @Html.AntiForgeryToken() 도우미 메서드는 양식의 양식 태그 내에 배치되어야 하지만 다른 모든 양식 컨트롤 앞에 배치되어야 합니다.
이 단계를 수행하면 CSRF 공격으로부터 MVC 웹 애플리케이션을 효과적으로 보호하고 다음을 보장할 수 있습니다. 양식 제출의 무결성.
위 내용은 ValidateAntiForgeryToken은 ASP.NET MVC에서 CSRF 공격을 어떻게 방지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!