2016-01-28 25 views
12

Czytałem dużo o atakach naprawy sesji, a najpopularniejsze rozwiązania, jakie spotkałem, zmieniają SessionID, gdy użytkownik loguje się i tworzy dodatkowy plik cookie przy użyciu GUID aby zweryfikować, czy użytkownik "należy" do SessionID.Czy ataki utrwalania sesji w MVC 5 nadal są problemem?

Moje pytanie brzmi następująco: czy nie wystarczy usunąć plik cookie SessionID (ASP.NET_SessionID), aby zapewnić wygenerowanie nowego identyfikatora SessionID? W MVC 5, gdy użytkownik loguje się do dodatkowego zaszyfrowanego użytkownika, tworzone są ciasteczka roszczeń (AspNet.ApplicationCookie), których tożsamość używa do uwierzytelnienia użytkownika przy każdym żądaniu. Dodatkowy "plik cookie GUID" wydaje się niepotrzebny.

Jestem pierwotnie programistą aplikacji komputerowych .NET, piszącym moją pierwszą aplikację MVC, a krzywa uczenia się była nieco stroma ... chociaż odświeżająco przyjemna.

Dzięki za pomoc.

+0

Szczerze tylko dowiedział się o ataku Session Fixation ale to wydaje się być odpowiedź na swoje pytanie. * Podczas uwierzytelniania użytkownika nie przypisuje on nowego identyfikatora sesji, co umożliwia wykorzystanie istniejącego identyfikatora sesji *. Moim zdaniem oznacza to, że nowo wygenerowany plik cookie może również mieć ten sam identyfikator sesji. Jednak mogę się mylić. – Jabberwocky

+0

Możliwy duplikat [Jak chronić moją witrynę przed utratą sesji?] (Https://stackoverflow.com/questions/15021431/how-to- protect-msite-fromotion-fionation) – garfbradaz

+0

@ I.Am. Ja przeczytałem ten artykuł pomoże Ci https://www.codeproject.com/Articles/1116318/Points-to-Secure-Your-ASP-NET-MVC-Aplikacje – Saineshwar

Odpowiedz

-2

Można to zrobić, aby uniknąć tej sytuacji:

SessionIDManager Manager = new SessionIDManager(); 

string NewID = Manager.CreateSessionID(Context); 
string OldID = Context.Session.SessionID; 
bool redirected = false; 
bool IsAdded = false; 
Manager.SaveSessionID(Context, NewID, out redirected, out IsAdded); 
Response.Write("Old SessionId Is : " + OldID); 

if (IsAdded) 
{ 
    Response.Write("<br/> New Session ID Is : " + NewID); 
} 
else 
{ 
    Response.Write("<br/> Session Id did not saved : "); 
} 

odnośnik Support: Link

+0

Odpowiedź tylko link nie jest wspierany, pls mają jakiś kontekst od link tutaj. –