Möglicherweise gefährliche Request.Form in WSFederationAuthenticationModule.IsSignInResponse

8

In meiner MVC3-Site habe ich es vermieden, requestValidationMode="2.0" mit dem neuen ValidateInput-Attribut zu setzen, aber jetzt versuche ich, zur Authentifizierung auf WIF umzusteigen, und wenn die STS auf meine Site umleitet, bekomme ich Die Ausnahme, weil WSFederationAuthenticationModule.IsSignInResponse Request.Form anstatt Request.Unvalidated().Form aufruft ... gibt es eine Möglichkeit, damit umzugehen, ohne zu requestValidationMode="2.0" zu gehen (was ich wirklich nicht tun will).

Hier ist der Stack-Trace, damit Sie sehen können, was ich meine. Die Methode meines Controllers wird nie wirklich aufgerufen.

%Vor%     
Jaykul 26.03.2011, 16:15
quelle

2 Antworten

12

Der richtige Weg, um damit umzugehen, besteht darin, der HttpRuntime einen spezifischen Validator hinzuzufügen, der weiß, wie man gültige Sicherheitstoken erkennt.

Sehen Sie sich eines der Beispiele hier an: Ссылка

Hier ist ein Auszug aus einem dieser (Beispiel # 5 ist spezifisch, das ist auch eine MVC-App):

%Vor%

Hier ist die Konfiguration:

%Vor%     
Eugenio Pace 27.03.2011, 00:13
quelle
2

Ich denke, wir haben diesen Fehler auch irgendwann beobachtet, aber wenn ich mich richtig erinnere, war das in irgendeinem Test- oder Testgerüstcode, also hatten wir dort keine strengen Sicherheitsanforderungen.

Die offizielle Information, die ich finden konnte, ist, dass dies ein bekanntes Problem in WIF ist: siehe den Abschnitt "ASP.NET erkennt passive Föderationstoken als potentielle Sicherheitsangriffe" am Anfang von die Seite mit den bekannten WIF-Problemen . Sie sagen dort, validateRequest="false" in web.config oder die entsprechende ASP.NET Page -Direktive dafür auf Seitenebene zu setzen.

Sie könnten also versuchen, dies nur in einer Page -Direktive auf der 'Homepage' Ihrer Anwendung zu setzen, ich bin mir nicht sicher, aber das könnte funktionieren.

Beachten Sie, dass sie nicht über requestValidationMode="2.0" auf der Seite mit den bekannten WIF-Problemen sprechen, sondern anhand von diese TechNet-Wiki-Seite Diese zusätzliche Einstellung ist für ASP.NET 4 erforderlich.

    
Marnix Klooster 26.03.2011 17:55
quelle

Tags und Links