2010-05-24 4 views
1

인증이 필요한 페이지를 조회하려고 시도 할 때 ASP.Net에 추가되는 returnUrl 쿼리 문자열 매개 변수에 대한 질문이 있습니다. Microsoft NerdDinner Sample의 LogOn 작업 (그물에있는 모든 '샘플 인증 코드'와 함께)을 보면 Action의 서명에 선언 된 ReturnUrl 매개 변수가 있으며이를 Redirect() 호출에서 직접 사용합니다. 그러나 WebForms 날짜와 Membership 컨트롤을 사용하여 FormsAuthentication.GetReturnUrl() 호출을 사용합니다. 쿼리 문자열에 URL이 지정되지 않은 경우 '기본 URL'을 반환하는 것 외에도 몇 가지 보안 검사 (교차 앱 리디렉션 및 'IsDangerousUrl()')를 수행합니다. 그 사람들은 더 이상 관심사가 아니거나 그저 그 문제를 무시하는 그물 전체에서 보이는 모든 샘플 '로그온'동작입니까?ASP.Net MVC ReturnUrl Practice

답변

0

내가 본 샘플에 대해서는 잘 모르겠지만 MVC 에서처럼 폼 인증을 사용하고 FormsAuthenticationModule 프로세싱 (또는 직접 FormsAuthentication 클래스 사용)에서 수행 한 검사의 이점을 누릴 수 있습니다.

IIRC, Visual Studio의 기본 MVC 응용 프로그램에는 ReturnUrl 쿼리 문자열을 사용하도록 쉽게 적용 할 수있는 폼 인증 (AuthenticationService)과 관련된 어댑터가 포함되어 있습니다.

문제의 샘플이 단순히 XSR 공격을 간과했다고 상상해보십시오.

+0

공격에 노출되어있었습니다. 이 기사를 활용하면 문제가 해결되었습니다. [ASP.NET MVC에서 오픈 리디렉션 공격 방지하기 ] (http://weblogs.asp.net/jgalloway/archive/2011/01/25/preventing-open-redirection-attacks-in-asp-net-mvc.aspx) – Terry