Pracuję nad aplikacją, która używa zmiennej Session, aby śledzić użytkowników, sprawdzając na stronie wzorcowej jej istnienie, w przeciwnym razie powala ich na logowanie. Chciałem to zmienić na Uwierzytelnianie formularza, ponieważ przeczytałem, że jest bezpieczniejszy, a dane są zaszyfrowane.co chroni uwierzytelnianie formularzy, w przeciwieństwie do używania zmiennej sesji
Czy ktoś może mi powiedzieć, jakie dane są rzeczywiście zaszyfrowane? Próbowałem skonfigurować uwierzytelnianie formularzy w mojej witrynie, działa dobrze, użytkownicy są odpowiednio śledzeni i nie mają dostępu do stron bez logowania. Jednak, gdy patrzę na treść żądania, używając Fiddlera, widzę wszystkie pola formularzy i tam zadowolony. Czy haker nie może tego użyć do zmiany danych i ponownego przesłania żądania, tak jak w przypadku pliku cookie generowanego ze zmiennej sesji? Ta aplikacja nie używa SSL, więc rozumiem, że SSL zaszyfruje ciało, ale pomyślałem, że to samo będzie robić uwierzytelnianie formularzy. W przeciwnym razie, co jest szyfrowane, tylko identyfikator sesji w pliku cookie?
Oto kod używałem:
<authentication mode="Forms">
<forms loginUrl="default.aspx" name=".ASPXFORMSAUTH_Test" defaultUrl="home.aspx" protection="All"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
na stronie logowania próbowałem ręcznie utworzyć plik cookie:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
txtEmail.Text,
DateTime.Now,
DateTime.Now.AddMinutes(30),
false,
txtEmail.Text,
FormsAuthentication.FormsCookiePath);
// Encrypt the ticket.
string encTicket = FormsAuthentication.Encrypt(ticket);
// Create the cookie.
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
// Redirect back to original URL.
Response.Redirect(FormsAuthentication.GetRedirectUrl(txtEmail.Text, false));
ja też próbowałem:
FormsAuthentication.RedirectFromLoginPage(txtEmail.Text, false);
earler, ma takie same wyniki, treść zapytania w skrzypce pokazuje wszystkie pola i ich zawartość.
Brak odpowiedzi na twoje pytanie (domyślam się, że wartość cookie zawiera pewne informacje hashowe, ale nie jestem pewien.). W każdym razie nie powinieneś ręcznie ustawiać ciasteczka. Powinieneś polegać na FormsAuthentication.SetAuthCookie. Niektóre szczegóły tutaj: http://stackoverflow.com/a/15199149/1236044 – jbl