ASPXAUTH 쿠키 란 무엇입니까?


80

ASP.Net 양식 인증을 사용하는 동안 .ASPXAUTH 쿠키를 발견했습니다. 몇 가지 질문이 있습니다.

  • 이 쿠키의 목적은 무엇입니까?
  • 이 쿠키의 위치는 어디입니까?

답변:


85

ASPXAUTH 쿠키는 사용자가 인증되었는지 확인하는 데 사용됩니다.

쿠키의 위치는 브라우저에 따라 다릅니다. Firefox를 사용하는 경우 도구-> 옵션-> 개인 정보를 클릭하여 쿠키를 볼 수 있습니다. 그런 다음 도메인까지 아래로 스크롤하고 확장하여 쿠키와 해당 값을 확인합니다. 값은 컴퓨터 키 (서버의 machine.config 또는 web.config 파일에 있음)를 사용하여 암호화되므로 클라이언트의 쿠키를 보면 실제로 정보를 제공하지 않습니다. 다음을 사용하여 서버 측에서 값을 해독 / 볼 수 있습니다.

HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];//.ASPXAUTH
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);

authTicket이 필드는 어디에 있습니까?

여기에 이미지 설명 입력

"ASPXAUTH는 기본적으로 ASP.NET 세션 상태를 유지하는 데 사용됩니다."라는 문장이 잘못되었습니다. ASP.NET은 ASP.NET_SessionId라는 완전히 다른 쿠키를 발행하여 세션 상태를 추적합니다.


2
Firefox v8.0에서 쿠키는 다음과 같이 찾을 수 있습니다. 도구-> 페이지 정보-> 보안-> 쿠키보기
Anthony

동일한 보안 탭에는 "저장된 암호보기"버튼이 있으며 놀랍게도 모든 암호를 Firefox를 사용하여 탐색하는 다양한 웹 사이트의 일반 텍스트로 볼 수있었습니다. 브라우저는 디스크에 인코딩 된 형식으로 저장해야하며 디코딩하여 참조 용으로 만 표시해야하지만이 옵션은 제가 생각할 수있는 한 실제로 보안 위협입니다. 해커가 동일한 알고리즘을 사용하고 자바 스크립트를 사용하여 쿠키를 읽을 수 있다면 해당 알고리즘의 유출은 브라우저 코드에만 알려진 일부 키와 관련 될 수 있으므로 먼 가능성이 있습니다.
RBT

http 요청의 쿠키 컬렉션에 asp.net 세션 ID를 저장하는 데 사용되는 키 이름을 가져 오려면 여기에 C # 코드가 있습니다. var aspNetSessionState = new System.Web.Configuration.SessionStateSection (); var aspNetSessionCookieName = aspNetSessionState.CookieName;
RBT

에서 Request.IsAuthenticated 사실이지만입니다 .ASPXAUTH 내 HttpContext.Current.Request.Cookies의 값이 아닌. sessionState를 사용합니다. Application_PostAuthenticateRequest
Kiquenet

1
MVC 프로젝트를 만들고 실행합니다. 계정을 등록하고 로그인하십시오. 그리고 크롬 개발 도구의 쿠키를 검사하면 Aspnet.ApplicationCookie가 있습니다. 그리고 로그인 동작에 한 줄을 추가했습니다. FormsAuthentication.SetAuthCookie (model.Email, true); 그리고 다시 로그인하고 이번에는 크롬 개발 도구에서 쿠키를 검사했는데 분명히 ASPXAuth였습니다. 그렇다면 둘 다의 차이점은 무엇입니까?

10

실제로 .ASPXAUTH 쿠키는 사용자가 진정으로 인증 된시기를 정확하게 알려주지 않습니다. 사용자가 앱에서 로그 아웃하면 .ASPXAUTH 쿠키가 브라우저에서 제거됩니다. 그러나 짧은 기간 (양식 인증 쿠키의 시간 초과 포함) 내에 사이트로 돌아가서 다음과 같이 새 ASP.NET_SessionId 쿠키를 편집하는 경우 :

  • "이름"필드를 "ASP.NET_SessionId"에서 ".ASPXAUTH"로 변경하십시오.
  • "값"을 24 자 sessionID에서 이전 448 자 인증 문자열로 변경

새로 고침 후 기술적으로 다시 인증하지 않고도 인증 된 사용자의 신원을 가정 할 수 있습니다. (다시 한 번 .ASPXAUTH 암호화 된 인증 문자열 내에 저장된 특정 제한 시간 내에이 작업을 수행한다고 가정)

좋은 블로그 게시물은 문제를 더 자세히 설명합니다. 가능한 해결책은 .ASPXAUTH를 ASP 세션과 연결하는 것입니다.


0

사용자가 HTML 로그인 URL과 상호 작용하여 TSWPP 서버가 사용자의 ID를 설정하도록 허용 한 경우 원격 서버는 사용자를 식별하고 서버에 대한 인증을 허용하는 쿠키를 생성해야합니다 (SHOULD). 쿠키의 내용은 서명되고 암호화되어야합니다. 서명 및 암호화 알고리즘을 포함하여이 쿠키의 특정 구현은 TSWPP 서버의 구현에 따라 달라집니다. 쿠키의 내용을 구문 분석하는 데 서버 만 필요하기 때문입니다. 서버가 쿠키를 구현하는 경우 쿠키는 "application / x-msts-webfeed-login"의 Content-Type과 함께 HTTP 페이로드에 반환되어야합니다.

http://msdn.microsoft.com/en-us/library/ee920427.aspx

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.