2015-04-20 17 views
12

Idę przez dotNetOpenAuth Samples (OpenIdRelyingPartyMVC i OpenIdProviderMvc) i wymyślić na pytanie dla lepszego zrozumienia ...dotNetOpenAuth Próbki problem coraz kontekst prawy bezpieczeństwa

W MembersArea w Strona ufająca App używam OpenID "http://localhost:4864/user/bob3" na przykład. Dostaję przekierowanie na stronę logowania dostawców, gdzie używam referencji Boba . Po pomyślnym zalogowaniu, otrzymuję przekierowanie z powrotem do strony RlyingParty, która mówi "Gratulacje Bob3 ...".

Czy jest to tylko wiążący się błąd w aplikacji strony ufającej, która pobiera identyfikator OpenID, który został przesłany do dostawcy, lub czy jestem uwierzytelniony w kontekście zabezpieczeń programu Bob3 za pomocą poświadczeń programu Bob5, które byłyby poważnym problemem zabezpieczeń w moim zdaniem, ponieważ jestem w stanie uwierzytelnić się jako ktokolwiek, kogo chcę, tylko z jednym działającym kontem użytkownika u dostawcy.

Odpowiedz

2

myślę używasz oddział out-of-date, który zawiera kwestię bezpieczeństwa, która została odkryta 3 lata temu:

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

Kodeksu wadliwej Kontroler: https://github.com/DotNetOpenAuth/DotNetOpenAuth.Samples/blob/master/src/OpenID/OpenIdProviderMvc/Controllers/OpenIdController.cs

Fixed kod: https://github.com/DotNetOpenAuth/DotNetOpenAuth/blob/develop/samples/OpenIdProviderMvc/Controllers/OpenIdController.cs

Diff poprawki: https://github.com/DotNetOpenAuth/DotNetOpenAuth/commit/cdd3e95f4eac8076ffd78641bf4cf61d4422572a

Wydaje mi się, że gałąź "master" jest przestarzała, podczas gdy gałąź "development" jest tą, z której powinniśmy korzystać.

+0

Dziękuję za odpowiedź, wydaje się uzasadniona, ponieważ użyłem prawdziwego oddziału w rzeczywistości ... daj mi dzień lub więcej, aby to zweryfikować –

+0

Doskonała odpowiedź, wielkie dzięki! Wystarczy wstawić różnicę bezpośrednio do kodu przykładowego OpenIdProviderMvc i natychmiast naprawiono problem. Użyłem ** projektu "dotNetOpenAuth.Samples" ** na Githubie, który wydaje się być przestarzały ... po prostu użyj głównego projektu, który zawiera już poprawione próbki. –

+0

Cieszę się, że mogę pomóc :) – Thuan