co to jest plik cookie ASPXAUTH?


80

Podczas pracy z uwierzytelnianiem formularzy ASP.Net natrafiłem na plik cookie .ASPXAUTH. Mam kilka pytań:

  • Jaki jest cel tego pliku cookie?
  • Jaka jest lokalizacja tego pliku cookie?

Odpowiedzi:


85

Plik cookie ASPXAUTH służy do określenia, czy użytkownik jest uwierzytelniony.

Jeśli chodzi o lokalizację pliku cookie, zależy to od Twojej przeglądarki. Jeśli używasz przeglądarki Firefox, możesz wyświetlić plik cookie, klikając Narzędzia -> Opcje -> Prywatność. Następnie przewiń w dół do domeny i rozwiń ją, aby zobaczyć plik cookie i jego wartość. Wartość jest szyfrowana przy użyciu klucza maszynowego (znajdującego się w pliku machine.config lub web.config serwera), więc sprawdzenie pliku cookie na kliencie nie dostarczy Ci żadnych informacji. Możesz odszyfrować / wyświetlić wartość po stronie serwera za pomocą:

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

gdzie authTicketma te pola:

wprowadź opis obrazu tutaj

Instrukcja „ASPXAUTH jest zasadniczo używana do obsługi stanu sesji ASP.NET” jest niepoprawna. ASP.NET wystawia zupełnie inny plik cookie o nazwie ASP.NET_SessionId w celu śledzenia stanu sesji.


2
W przeglądarce Firefox w wersji 8.0 pliki cookie można znaleźć w następujący sposób: Narzędzia -> Informacje o stronie -> Bezpieczeństwo -> Wyświetl pliki cookie
Anthony

W tej samej zakładce bezpieczeństwa znajduje się przycisk „Wyświetl zapisane hasła” i ku mojemu zdziwieniu mogłem zobaczyć wszystkie hasła jako zwykły tekst do różnych stron internetowych, które przeglądałem przy użyciu programu Firefox. Chociaż przeglądarka musi przechowywać go w zakodowanym formacie na dysku i pokazuje go tylko w celach informacyjnych, dekodując go, ale ta opcja jest naprawdę zagrożeniem dla bezpieczeństwa, o ile myślę. Jeśli jakikolwiek haker może zastosować ten sam algorytm i odczytać te pliki cookie za pomocą javascript, chociaż wyciek tego algorytmu jest odległą możliwością, ponieważ może obejmować również klucz, który jest znany tylko kodowi przeglądarki.
RBT

Aby uzyskać nazwę klucza używanego do przechowywania identyfikatora sesji asp.net w kolekcji plików cookie żądania http, oto kod C #: var aspNetSessionState = new System.Web.Configuration.SessionStateSection (); var aspNetSessionCookieName = aspNetSessionState.CookieName;
RBT

W Application_PostAuthenticateRequesttym Request.IsAuthenticated jest prawdą, ale .ASPXAUTH nie wartość w moim HttpContext.Current.Request.Cookies. Używam sessionState.
Kiquenet

1
Stworzyłem projekt MVC, uruchom go. Zarejestruj konto, a następnie zaloguj się. I sprawdź pliki cookie w narzędziu Chrome dla deweloperów, czy jest plik Aspnet.ApplicationCookie. Następnie dodano jedną linię w akcji logowania: FormsAuthentication.SetAuthCookie (model.Email, true); i ponownie zaloguj się i przejrzyj pliki cookie w narzędziu chrome dla deweloperów, tym razem oczywiście był to ASPXAuth. Więc jaka jest różnica w obu?

10

W rzeczywistości plik cookie .ASPXAUTH nie informuje dokładnie, kiedy użytkownik jest naprawdę uwierzytelniony. Gdy użytkownik wylogowuje się z aplikacji, plik cookie .ASPXAUTH jest usuwany z przeglądarki. Jeśli jednak wrócisz do witryny w krótkim czasie (z przekroczeniem limitu czasu pliku cookie uwierzytelniania formularza) i zmodyfikujesz nowe pliki cookie ASP.NET_SessionId, wprowadzając następujące elementy:

  • zmień pole „name” z „ASP.NET_SessionId” na „.ASPXAUTH”
  • zmień „wartość” z 24-znakowego identyfikatora sesji na stary 448-znakowy ciąg uwierzytelniania

Po odświeżeniu będziesz mógł przyjąć tożsamość uwierzytelnionego użytkownika bez ponownego technicznego uwierzytelniania. (ponownie zakładając, że zrobisz to w określonym limicie czasu przechowywanym w zaszyfrowanym ciągu autoryzacji .ASPXAUTH)

Dobry wpis na blogu wyjaśnia problem bardziej szczegółowo. Możliwym rozwiązaniem jest powiązanie .ASPXAUTH z sesją ASP.


0

Jeśli interakcje użytkownika z adresem URL logowania w formacie HTML pozwoliły serwerowi TSWPPserver na ustalenie tożsamości użytkownika, serwer zdalny POWINIEN wygenerować plik cookie identyfikujący użytkownika i umożliwiający uwierzytelnianie na serwerze. Zawartość pliku cookie POWINNA być podpisana i zaszyfrowana. Konkretna implementacja tego pliku cookie, w tym algorytmy podpisywania i szyfrowania, zależy od implementacji serwera TSWPP, ponieważ tylko serwer jest zobowiązany do przeanalizowania zawartości pliku cookie. Jeśli serwer implementuje plik cookie, MUSI on zostać zwrócony w ładunku HTTP z typem zawartości „application / x-msts-webfeed-login”.

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.