Ich versuche, eine Reihe von Sicherheitsproblemen auf einer ziemlich großen ASP.NET-Webanwendung (C#) zu arbeiten. Um Session-Fixierungsangriffe zu verhindern, möchte ich jedes Mal, wenn sich ein Benutzer authentifiziert, eine neue Session-ID generieren. Ich möchte jedoch nur eine neue Sitzungs-ID generieren, ohne den Rest der Sitzung zu verlieren. einige der Forschung zu diesem Thema Nachdem ich fand ich ein paar Arbeitslösungen:Erstellen einer neuen SessionID bei der Anmeldung (ASP.NET)
Lösung 1: Generating new SessionId in ASP.NET
Dies deutet auf den Session-Cookie manuell Clearing es auf einen leeren String zu setzen. Dies erfordert jedoch entweder eine Seitenaktualisierung oder die Verwendung von AJAX, um sicherzustellen, dass der Cookie tatsächlich entfernt wird, was in meinem speziellen Fall keine wirklich praktikable Option ist.
Lösung 2: Generating a new ASP.NET session in the current HTTPContext
Ich habe diesen Ansatz umgesetzt und es funktioniert wie erwartet. Wie das Original-Poster jedoch sagt, ist dies nicht wirklich eine elegante Lösung. Außerdem ist dieser Beitrag ein paar Jahre alt und ich hoffe, dass es heutzutage eine bessere Lösung gibt. Ich würde gerne wissen, ob es Alternativen gibt, die ich bei meinen Recherchen verpasst habe, oder wenn etwas wie Lösung 2 möglich ist, ohne die Session Management Interna zu manipulieren.
Ich habe das gleiche Problem mit Ihnen und AFAIK, Lösung2 war im Wesentlichen die gleiche Lösung1, beide versuchen, eine neue SessionID für aktuelle httpcontext zu regenerieren. endlich fand ich diesen Link: http://stackoverflow.com/questions/5502435/regenerate-sessionid-in-asp-net, und tat es mit Erfolg. Es ist ein viel einfacherer Weg, dies zu erreichen. – pinopino
Schließlich, gibt es eine Möglichkeit, Ihr Problem zu lösen? Oder hast du dich selbst gelöst? Bitte teilen Sie Ihre Lösung, damit jeder mehr Wissen bekommen kann. XD –