Проблемы безопасности с автологином и FormsAuthenticationTicket - PullRequest
2 голосов
/ 21 июля 2011

Я использую автологин на своем веб-сайте MVC 3.

Как мне лучше всего решить эту проблему:

Пользователь входит в систему на своем компьютере (и получает 30-дневное печенье)

Тот же пользователь входит в систему на компьютере друзей (и получает 30-дневный файл cookie)

Теперь возможно автоматическое подключение на обоих компьютерах.Пользователь понимает это и меняет свой пароль, но его друг все еще может автоматически входить в систему со своего компьютера, пока не истечет срок действия файла cookie.

Как мне лучше всего справиться с этим?

Я, конечно, мог бы установить датуна пользователя, когда пароль изменился, и проверьте это по дате в файле cookie.

Или я что-то упустил?

Ответы [ 2 ]

1 голос
/ 22 июля 2011

Я знаю, что вы говорите, но я думаю, что вы подразумеваете связь между функцией «запомнить меня» и функцией «смена пароля», которой на практике нет. Токен аутентификации, который вы получаете при аутентификации, обычно не привязан к значению пароля (т. Е. При использовании поставщика членства), в конце концов, вы логически сохраняете аутентификацию identity между сеансами, и в этом отношении, это работает просто отлично.

Если честно, это больше похоже на проблему с поведением пользователя, чем на технологию. В вашем случае кто-то сознательно просит браузер разрешить им оставаться аутентифицированными в течение длительного периода времени и делает это на компьютере, который он не контролирует. Конечно, я предполагаю, что у вас есть флажок «запомнить меня», а если нет, то ваш ответ тут же.

Еще одна вещь, на которую вы, возможно, захотите взглянуть, - это то, о чем OWASP говорит в части 3 из Топ-10 - Сломанная аутентификация и управление сеансами . Эта ссылка поместит ее в контекст .NET для вас, но вкратце, она много говорит об уменьшении возможности того, что вы описываете, в результате таких вещей, как истечение срока ожидания сеанса, отключение скользящих сеансов и, очевидно, предоставление конечным пользователям контроля истечь токен по истечении сеанса и выйти в любое время.

1 голос
/ 21 июля 2011

У вас нет флажка Запомнить меня в вашей форме входа. Значение этого флажка будет определять, собираетесь ли вы создать постоянный файл cookie или нет. если вы не создадите постоянный файл cookie, срок его действия истечет, как только сессия закончится. В этом случае пользователь может оставить флажок «Запомнить меня» при входе в систему на своем компьютере друзей. Если он этого не делает, он сам призывает к неприятностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...