Обеспечение максимальных попыток входа в систему в ASP.NET MVC 3 - PullRequest
0 голосов
/ 01 ноября 2011

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

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

Какие методы / опции у меня есть для этого? Я, очевидно, не могу использовать скрытое поле, и я не могу использовать сеанс, потому что его нет. Что такое протокол или лучший метод для этого.

Я смотрю 10 попыток, прежде чем принудительно сбросить пароль или временно деактивировать учетную запись.

ПРИМЕЧАНИЕ. Я смотрю, какие у меня есть методы для хранения суммы входа в систему, как я различаю попытки входа в систему и т. Д.

Ответы [ 2 ]

1 голос
/ 01 ноября 2011

Если вы хотите, чтобы пользователь не пытался использовать несколько логинов и паролей, вам необходимо отслеживать IP-адрес вместе с количеством неудачных попыток входа в систему.Ips будет храниться в другой таблице, чем аутентифицированный пользователь.

Если у того же ip пользователя есть 10 недопустимых входов в систему, то вход в систему, который они вводят, не будет работать, даже если они изменят комбинацию имени пользователя и пароля.

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

вы также можете отправить электронное письмо пользователю после 3 попыток, уведомив его о том, что произошел неправильный логин, и если это не так, скажите ему выполнить какое-либо действие.Я знаю, что такие сайты, как LogMeIn, делают это.

1 голос
/ 01 ноября 2011

Я думаю, что общий шаблон заключается в том, что неудачные попытки входа в систему отслеживаются на сервере, а не на клиенте, и что, когда сервер зарегистрировал X число сбоев для конкретной учетной записи, эта учетная запись блокируется. Затем пользователь должен сбросить свою учетную запись с помощью ранее проверенного механизма контактов (адрес электронной почты, номер телефона, контрольный вопрос и т. Д.).

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