2016-01-28 7 views
12

Ho letto molto sugli attacchi di fissazione delle sessioni e le soluzioni più diffuse che ho incontrato stanno cambiando il SessionID quando l'utente esegue il login e creando un cookie aggiuntivo utilizzando un GUID per verificare che l'utente "appartenga" al SessionID.Gli attacchi di correzione sessione in MVC 5 sono ancora un problema

La mia domanda è questa: non è sufficiente eliminare il cookie SessionID (ASP.NET_SessionID) per garantire che venga generato un nuovo SessionID? In MVC 5, quando l'utente accede a un utente crittografato aggiuntivo, viene creato un cookie (AspNet.ApplicationCookie) che Identity utilizza per autenticare l'utente a ogni richiesta. Il "cookie GUID" aggiuntivo sembra non necessario.

Sono originariamente uno sviluppatore di applicazioni desktop .NET che scrive la mia prima app MVC e la curva di apprendimento è stata un po 'ripida ... anche se piacevolmente rinfrescante.

Grazie per qualsiasi aiuto.

+0

Onestamente appena scoperto gli attacchi sessione fissazione, ma che sembra essere la risposta alla tua domanda. * Durante l'autenticazione di un utente, non assegna un nuovo ID di sessione, rendendo possibile l'uso di un ID di sessione esistente *. Nella mia mente ciò significa che il cookie appena generato, potrebbe anche avere lo stesso ID di sessione. Potrei sbagliarmi, comunque. – Jabberwocky

+0

Possibile duplicato di [Come proteggere il mio sito dalla risoluzione della sessione?] (Https://stackoverflow.com/questions/15021431/how-to-protect-my-site-from-session-fixation) – garfbradaz

+0

@ I.Am. Io leggo questo articolo ti aiuterà https://www.codeproject.com/Articles/1116318/Points-to-Secure-Your-ASP-NET-MVC-Applications – Saineshwar

risposta

-2

Si può fare questo per evitare che la situazione:

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 : "); 
} 

collegamento Supporto: Link

+0

Link solo la risposta non è incoraggiata, pls condividono alcuni contesti dal link qui. –

Problemi correlati