2016-10-05 6 views
1

새 ASP.NET Core 응용 프로그램에 대한 복잡한 템플릿을 사용하고 있습니다. 이제 다른 외부 서버에서 POST 요청을받는 새 컨트롤러를 만들고 싶습니다. 그것은 작동하지 않았다. 특정 헤더 (X-XSRF-TOKEN)가있는 컨트롤러에 대한 POST 요청 만 허용하는 메커니즘이 있다는 것을 알기 전까지 많이 시도했습니다. 이는 교차 사이트 요청 - 위조 공격을 방지하기 위해 수행됩니다.특정 ASP.NET 코어 컨트롤러에 대한 교차 사이트 게시 요청 허용

그러나이 컨트롤러는 웹 페이지 방문자 브라우저에서 사용되지 않으므로 특정 컨트롤러 하나가 이러한 요청을 허용해야합니다. 이 예외를 허용하기 위해 컨트롤러 또는 다른 방법에 주석을 달 수있는 방법이 있습니까?

답변

1

마침내 대답을 찾았으며 주석을 사용하여 실제로 가능합니다. 컨트롤러 또는 동작에 [IgnoreAntiforgeryTokenAttribute]으로 주석을 달아주십시오. 그러면 전체 XSRF 메커니즘이 컨트롤러를 더 이상 괴롭히지 않습니다.

1

브라우저에서 해당 컨트롤러 동작을 사용하지 않으려는 경우에도 http를 통해 액세스 할 수있는 경우 쉽게 CSRF에 취약 할 수 있습니다. 공격자는 여전히 사용자 중 한 명이 방문하면 사용자가 해당 작업에 대한 요청을 보내도록 허위 웹 페이지를 만들 수 있습니다. 세션 관리가 쿠키 기반이거나 동등한 서버 인 인 경우 작업이 서버 상태를 변경하더라도 여전히 악용 될 수있는 취약점이됩니다.

따라서 CSRF 보호 기능을 사용할 수있는 동안 결과를 신중하게 고려해야합니다.