dotNetOpenAuth примеры проблема получения правильного контекста безопасности


Я просматриваю образцыdotNetOpenAuth (OpenIdRelyingPartyMVC и OpenIdProviderMvc) и подхожу к вопросу для лучшего понимания...

В MembersArea приложения проверяющей стороны я использую OpenID "http://localhost:4864/user/bob3 " например. Меня перенаправляют на страницу входа провайдеров, где я использую учетные данные Боба5 а потом... После успешного входа в систему, я перенаправлен обратно на RelyingParty, который говорит: "Поздравляю Боб3...".

Это просто ошибка привязки в приложении проверяющей стороны, которое принимает OpenID, который был отправлен поставщику, или я аутентифицируюсь в контексте безопасности Bob3 с учетными данными Bob5, что, по моему мнению, было бы серьезной проблемой безопасности, поскольку я могу аутентифицироваться как кто угодно, только с одной рабочей учетной записью пользователя у поставщика.

1 12

1 ответ:

Я думаю, что вы используете устаревшую ветку, которая содержит проблему безопасности, обнаруженную 3 года назад:

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

Код неисправного контроллера: https://github.com/DotNetOpenAuth/DotNetOpenAuth.Samples/blob/master/src/OpenID/OpenIdProviderMvc/Controllers/OpenIdController.cs

Исправлено код: https://github.com/DotNetOpenAuth/DotNetOpenAuth/blob/develop/samples/OpenIdProviderMvc/Controllers/OpenIdController.cs

Разница в исправлении: https://github.com/DotNetOpenAuth/DotNetOpenAuth/commit/cdd3e95f4eac8076ffd78641bf4cf61d4422572a

Мне кажется, что ветвь " master "устарела, в то время как ветвь" Development " - это та, которую мы должны использовать.