Wie funktioniert die Weiterleitung zu returnUrl in Asp.Net MVC5?

8

Ich habe eine neue MVC 5-Site mit der neuen Asp.Net Identity mit Owin gestartet. In meinem "account" -Controller, der das Attribut [Authorize] hat, habe ich ziemlich Standardaktionen;

%Vor%

Meine Frage bezieht sich auf das Verhalten von returnUrl, der obige Code funktioniert in dem Sinne, dass wenn ein Benutzer nicht angemeldet ist und eine Aktion in einem Controller aufruft, der das Attribut [Authorize] hat, wird er zum Login geschickt Aktionen oben und kehrte dann zu dem Controller / Aktion, die angefordert wurde. Was ist toll, ABER wie ?? Und ist es sicher?

In diesem Artikel über " Offenen Redirect-Angriffen verhindern " (für früher Versionen von Asp.Net MVC) empfiehlt es sich, vor der Weiterleitung zu überprüfen, ob es sich um eine lokale URL handelt. Soll ich das noch tun oder wird es jetzt vom Framework behandelt?

Prost, Ola

    
Ola Karlsson 17.12.2013, 08:10
quelle

4 Antworten

13

Sie müssen überprüfen, ob die URL tatsächlich lokal ist, indem Sie diese Methode verwenden (sie wird nicht automatisch vom Framework verarbeitet): Ссылка

%Vor%     
Marthijn 17.12.2013 08:18
quelle
3
%Vor%     
Vivekh 17.12.2013 08:25
quelle
2

Um Ihre erste Frage zu beantworten, wie die Weiterleitungs-Url eingerichtet wird, wird sie in Startup.Auth.cs konfiguriert, die von Startup.cs aufgerufen wird und mit einem Attribut gekennzeichnet ist, das wahrscheinlich vom OWIN-Framework beim App-Start und beiden Dateien gesucht wird partial erweitert eine Startup -Klasse.

In Startup.Auth.cs gibt es eine Klasse zum Konfigurieren von Authentifizierungsoptionen und normalerweise den folgenden Code

%Vor%

Ich habe die Option CookieSecure hinzugefügt, um sicherzustellen, dass Cookies signiert wurden, und dass dies als eine gute Sicherheitsvorkehrung empfohlen wird, außer dass es sich um den Kesselblechcode handelt.

Weitere Dokumentation zu CookieAuthenticationOptions wenn du es willst.

    
Sandeep Phadke 31.01.2014 19:16
quelle
2

Wie Sandeep Phadke sagte, ist der Parameter returnUrl wegen der Konfiguration in startup.Auth.cs.

gefüllt

Die CookieAuthenticationOptions hat eine Eigenschaft ReturnUrlParameter, die standardmäßig auf "returnUrl" gesetzt ist. Das ist der Grund, warum es wie Magie aussieht. Sie können es zu dem ändern, was Sie wollen:

%Vor%

Dann können Sie die AccountController Login-Aktion zu:

ändern %Vor%     
Kirsten 10.11.2015 16:23
quelle