2016-01-28 1 views
12

Ich habe viel über Session Fixation Angriffe gelesen und die beliebtesten Lösungen die ich getroffen habe, ändern die SessionID wenn Benutzer sich anmeldet und ein zusätzliches Cookie mit einer GUID erstellt um zu überprüfen, ob der Benutzer der SessionID "gehört".Sind Sitzungsfixierungsangriffe in MVC 5 immer noch ein Problem

Meine Frage ist: Reicht es nicht, nur den SessionID-Cookie (ASP.NET_SessionID) zu löschen, um sicherzustellen, dass eine neue SessionID generiert wird? In MVC 5, wenn der Benutzer einen zusätzlichen verschlüsselten Benutzer anmeldet, werden Cookies erstellt (AspNet.ApplicationCookie), die die Identität verwendet, um den Benutzer bei jeder Anfrage zu authentifizieren. Der zusätzliche "GUID-Cookie" scheint unnötig zu sein.

Ich bin ursprünglich ein Entwickler von .NET-Desktop-Anwendungen und schreibe meine erste MVC-App und die Lernkurve war ein bisschen steil ... obwohl erfrischend erfreulich.

Danke für jede Hilfe.

+0

ich ehrlich gesagt fand heraus Angriffe nur um die Session-Fixation, aber das scheint die Antwort auf Ihre Frage zu sein. * Bei der Authentifizierung eines Benutzers wird keine neue Sitzungs-ID zugewiesen, sodass eine vorhandene Sitzungs-ID * verwendet werden kann. In meinen Augen bedeutet dies, dass das neu generierte Cookie auch dieselbe Session ID haben kann. Ich könnte mich jedoch irren. – Jabberwocky

+0

Mögliches Duplikat von [Wie kann ich meine Website vor Sitzungsfixierung schützen?] (Https://stackoverflow.com/questions/15021431/how-to-protect-my-site-from-session-fixation) – garfbradaz

+0

@ I.Am. Ich las diesen Artikel wird Ihnen helfen, https://www.codeproject.com/Articles/1116318/Points-to-Secure-Your-ASP-NET-MVC-Applications – Saineshwar

Antwort

-2

Sie können dies, dass die Situation zu vermeiden, tun:

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

Link Support: Link

+0

Link nur Antwort wird nicht ermutigt, bitte teilen einige Kontext aus der Link hier. –