ASP.Net 양식 인증을 사용하는 동안 .ASPXAUTH 쿠키를 발견했습니다. 몇 가지 질문이 있습니다.
- 이 쿠키의 목적은 무엇입니까?
- 이 쿠키의 위치는 어디입니까?
ASP.Net 양식 인증을 사용하는 동안 .ASPXAUTH 쿠키를 발견했습니다. 몇 가지 질문이 있습니다.
답변:
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라는 완전히 다른 쿠키를 발행하여 세션 상태를 추적합니다.
Application_PostAuthenticateRequest
실제로 .ASPXAUTH 쿠키는 사용자가 진정으로 인증 된시기를 정확하게 알려주지 않습니다. 사용자가 앱에서 로그 아웃하면 .ASPXAUTH 쿠키가 브라우저에서 제거됩니다. 그러나 짧은 기간 (양식 인증 쿠키의 시간 초과 포함) 내에 사이트로 돌아가서 다음과 같이 새 ASP.NET_SessionId 쿠키를 편집하는 경우 :
새로 고침 후 기술적으로 다시 인증하지 않고도 인증 된 사용자의 신원을 가정 할 수 있습니다. (다시 한 번 .ASPXAUTH 암호화 된 인증 문자열 내에 저장된 특정 제한 시간 내에이 작업을 수행한다고 가정)
좋은 블로그 게시물은 문제를 더 자세히 설명합니다. 가능한 해결책은 .ASPXAUTH를 ASP 세션과 연결하는 것입니다.
사용자가 HTML 로그인 URL과 상호 작용하여 TSWPP 서버가 사용자의 ID를 설정하도록 허용 한 경우 원격 서버는 사용자를 식별하고 서버에 대한 인증을 허용하는 쿠키를 생성해야합니다 (SHOULD). 쿠키의 내용은 서명되고 암호화되어야합니다. 서명 및 암호화 알고리즘을 포함하여이 쿠키의 특정 구현은 TSWPP 서버의 구현에 따라 달라집니다. 쿠키의 내용을 구문 분석하는 데 서버 만 필요하기 때문입니다. 서버가 쿠키를 구현하는 경우 쿠키는 "application / x-msts-webfeed-login"의 Content-Type과 함께 HTTP 페이로드에 반환되어야합니다.