Cookie ASPXAUTH là gì?


80

Trong khi làm việc với Xác thực Mẫu ASP.Net, tôi đã xem qua cookie .ASPXAUTH. Tôi có một vài câu hỏi:

  • Mục đích của cookie này là gì?
  • Vị trí của cookie này là gì?

Câu trả lời:


85

Cookie ASPXAUTH được sử dụng để xác định xem người dùng có được xác thực hay không.

Đối với vị trí của cookie, điều đó phụ thuộc vào trình duyệt của bạn. Nếu đang sử dụng Firefox, bạn có thể xem cookie bằng cách nhấp vào Công cụ -> Tùy chọn -> Quyền riêng tư. Sau đó, cuộn xuống tên miền và mở rộng nó để xem cookie và giá trị của nó. Giá trị được mã hóa bằng cách sử dụng khóa máy (nằm trong tệp machine.config hoặc web.config của máy chủ) nên việc nhìn vào cookie trên máy khách sẽ không thực sự cung cấp cho bạn bất kỳ thông tin nào. Bạn có thể giải mã / xem giá trị ở phía máy chủ bằng cách sử dụng:

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

nơi authTicketcó các trường này:

nhập mô tả hình ảnh ở đây

Tuyên bố "ASPXAUTH về cơ bản được sử dụng để duy trì Trạng thái phiên ASP.NET" là không chính xác. ASP.NET phát hành một cookie hoàn toàn khác, có tên ASP.NET_SessionId, để theo dõi trạng thái phiên.


2
Trên Firefox v8.0 các cookie có thể được tìm thấy như sau: Tools -> Page Info -> Security -> View Cookies
Anthony

Trong cùng một tab bảo mật có nút "Xem mật khẩu đã lưu" và tôi ngạc nhiên khi thấy tất cả mật khẩu dưới dạng văn bản thuần túy cho các trang web khác nhau mà tôi đang duyệt bằng firefox. Mặc dù trình duyệt phải lưu trữ nó ở định dạng được mã hóa trên đĩa và nó chỉ hiển thị để bạn tham khảo bằng cách giải mã nhưng tùy chọn này thực sự là một mối đe dọa bảo mật nhiều như tôi có thể nghĩ. Nếu bất kỳ hacker nào cũng có thể sử dụng cùng một thuật toán và đọc các cookie đó bằng javascript mặc dù việc rò rỉ thuật toán đó là một khả năng xa vời vì nó có thể liên quan đến một số khóa chỉ được biết đến với mã trình duyệt.
RBT

Để lấy tên của khóa được sử dụng để lưu trữ id phiên asp.net trong bộ sưu tập cookie của yêu cầu http, đây là mã C #: var aspNetSessionState = new System.Web.Configuration.SessionStateSection (); var aspNetSessionCookieName = aspNetSessionState.CookieName;
RBT

Trong Application_PostAuthenticateRequestcác Request.IsAuthenticated là đúng nhưng .ASPXAUTH không giá trị trong HttpContext.Current.Request.Cookies tôi. Tôi sử dụng sessionState.
Kiquenet

1
Tôi đã tạo một dự án MVC, hãy chạy nó. Đăng ký tài khoản và sau đó đăng nhập. Và kiểm tra cookie trong công cụ chrome dev có một Aspnet.ApplicationCookie. Và sau đó thêm một dòng trong hành động đăng nhập: FormsAuthentication.SetAuthCookie (model.Email, true); và một lần nữa đăng nhập và kiểm tra cookie trong công cụ chrome dev lần này rõ ràng đó là ASPXAuth. Vậy sự khác biệt ở cả hai là gì?

10

Trên thực tế, cookie .ASPXAUTH không cho bạn biết chính xác khi nào người dùng được xác thực thực sự. Khi người dùng đăng xuất khỏi ứng dụng, cookie .ASPXAUTH sẽ bị xóa khỏi trình duyệt. Tuy nhiên, nếu bạn quay lại trang web trong một khoảng thời gian ngắn (với thời gian chờ của cookie biểu mẫu) và chỉnh sửa cookie ASP.NET_SessionId mới như sau:

  • thay đổi trường "tên" từ "ASP.NET_SessionId" thành ".ASPXAUTH"
  • thay đổi "giá trị" từ 24 char sessionID thành chuỗi xác thực 448 char cũ

Sau khi làm mới, bạn sẽ có thể giả định danh tính của người dùng đã xác thực mà không cần xác thực lại về mặt kỹ thuật. (một lần nữa giả sử bạn làm điều này trong khoảng thời gian chờ cụ thể được lưu trữ trong chuỗi xác thực được mã hóa .ASPXAUTH)

Một bài đăng trên blog tốt giải thích vấn đề chi tiết hơn. Một giải pháp khả thi là ghép nối .ASPXAUTH với phiên ASP.


0

Nếu tương tác của người dùng với URL đăng nhập HTML đã cho phép Máy chủ TSWPP thiết lập danh tính của người dùng, máy chủ từ xa NÊN tạo một cookie nhận dạng người dùng và cho phép xác thực máy chủ. Nội dung của cookie NÊN được ký và mã hóa. Việc triển khai cụ thể cookie này bao gồm các thuật toán ký và mã hóa phụ thuộc vào việc triển khai máy chủ TSWPP, vì chỉ máy chủ mới được yêu cầu phân tích cú pháp nội dung của cookie. Nếu máy chủ triển khai cookie, thì cookie PHẢI được trả lại trong tải trọng HTTP với Loại Nội dung là "application / x-msts-webfeed-login".

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.