2013-12-19 5 views
0

.NET 4.0 MVC 웹 응용 프로그램에서 교차 위장 공격을 방지하기 위해 @Html.AntiForgeryToken()을 사용하여 페이지 당 CSRF 토큰을 생성했습니다. 토큰 유효성 검사는 [ValidateAntiForgeryToken] api를 사용하여 각 요청 처리시 해당 컨트롤러 및 작업의 프레임 워크에서 제공됩니다.Antiforgery Technique을 사용하여 .NET 4.0 MVC 웹 응용 프로그램에서 교차 사이트 위조 공격 (재생 공격)을 방지하는 방법

클라이언트 브라우저의 요청을 추적하고이 추적 된 데이터가있는 프록시 도구에서 다시 전송하면 서버 응용 프로그램이이를 받아들이고 유효성 검사 오류가 표시되지 않습니다.

추적 된 데이터에는 요청 본문에 생성 된 토큰 값 (__RequestVerificationToken)이 포함됩니다.

응용 프로그램이 SSL (자체 서명)을 사용하며 HTTPS에서 호스팅됩니다.

도구는 요청 본문에서 유효성이 검증 된 토큰을 복사 할 수 있으며이 토큰을 사용하여 새 요청을 보낼 수 있습니다. 즉, 유효성이 검증 된 토큰은 여전히 ​​사용할 수 있습니다. 이미 생성 된 폼 토큰을 무효화하거나 제거하는 방법.

사이트 간 공격을 방지하기 위해 고려해야 할 다른 보안 조치가있는 경우 알려주십시오.

답변

2

당신이 묘사 한 공격은 man-in-the-middle/replay 공격이며 CSRF 공격은 아닙니다. MVC의 anti-CSRF API는 재생 보호 기능을 지원하지만, 이것을 설정하는 것은 결코 쉬운 일이 아니며, 어쨌든 반드시이 문제를 해결할 것 같지 않습니다. 예를 들어 응용 프로그램을 MITM 할 수 있으면 인증 쿠키에 대한 전체 액세스 권한이 있습니다. 저는 단순히 당신처럼 로그인 할 수 있었고, 원할 때마다 서버에 새로운 올바른 것을 생성하도록 요청할 수 있기 때문에 CSRF 토큰이 유효한지 여부에 대해 걱정할 필요가 없었습니다.

해결하려는 정확한 시나리오는 무엇입니까?