В таблице users делаем два поля - количество попыток и время последней попытки. При неправильном вводе заполняем эти поля. При вводе 10 раз больше не проверяем пароль, а проверяем время, если 10 минут прошло - очищаем поля и проверяем пароль, если 10 минут не прошло - выдаем что временно заблокирован и может восстановить пароль через эмейл.
Ну а если банить не хотите - подключайте капчу после 3 попыток.
Ну и конечно всё логировать и смотреть их.