2015-04-20 20 views
12

Ich bin durch die dotNetOpenAuth Samples (OpenIdRelyingPartyMVC und OpenIdProviderMvc) gehen und kommen auf eine Frage zum besseren Verständnis ...DotNetOpenAuth Proben Ausgabe immer die richtige Sicherheitskontext

Im Mitgliederbereich der Relying Party App ich das verwenden OpenID "http://localhost:4864/user/bob3" zum Beispiel. Ich werde auf die Anmeldeseite des Providers weitergeleitet, wo ich dann die Anmeldeinformationen von Bob verwende. Nachdem ich mich erfolgreich angemeldet habe, werde ich zurück zur RelyingParty geleitet, die "Congratulations Bob3 ..." sagt.

Ist dies nur ein Binding Bug in der Relying Party App, die die OpenID übernimmt, die beim Provider eingereicht wurde, oder bin ich im Sicherheitskontext von Bob3 mit den Anmeldeinformationen von Bob5 authentifiziert, was ein großes Sicherheitsproblem darstellen würde meiner Meinung nach, da ich mich nur mit einem funktionierenden Benutzerkonto beim Anbieter authentifizieren kann wie ich will.

Antwort

2

Ich denke, Sie eine out-of-date-Zweig verwenden, die eine Sicherheitslücke enthält, die vor 3 Jahren entdeckt wurde:

http://www.zdnet.com/article/dotnet-projects-flawed-sample-code-has-crippling-authentication-exploit/

-Code des fehlerhaften Controller: https://github.com/DotNetOpenAuth/DotNetOpenAuth.Samples/blob/master/src/OpenID/OpenIdProviderMvc/Controllers/OpenIdController.cs

Fest Code: https://github.com/DotNetOpenAuth/DotNetOpenAuth/blob/develop/samples/OpenIdProviderMvc/Controllers/OpenIdController.cs

Diff der fix: https://github.com/DotNetOpenAuth/DotNetOpenAuth/commit/cdd3e95f4eac8076ffd78641bf4cf61d4422572a

Es scheint mir, dass der "Master" Zweig veraltet ist, während der "entwickeln" Zweig der ist, den wir verwenden sollten.

+0

Vielen Dank für Ihre Antwort, scheint echt, wie ich den Meister-Zweig in der Tat ... geben Sie mir einen Tag oder so um dies zu überprüfen –

+0

Perfekte Antwort, vielen Dank! Ich habe den Diff direkt in den Beispielcode des OpenIdProviderMvc eingefügt und das Problem sofort behoben. Ich habe das ** "dotNetOpenAuth.Samples" ** - Projekt auf Github verwendet, das veraltet zu sein scheint ... benutze stattdessen das Hauptprojekt, das bereits gepatchte Samples enthält. –

+0

Froh, dass ich helfen kann :) – Thuan