Во-первых, ограничьте скорость страницы входа в систему по IP. Используйте систему невидимой капчи на странице входа. Затем вы должны установить лимиты входа в систему для каждого IP-адреса, но вы также должны установить лимиты входа в систему для каждого пользователя в качестве крайней меры, чтобы запретить ботнетам перебор с нескольких IP-адресов. Отправьте электронное письмо пользователю, если будет обнаружена попытка взлома его пароля. Не посылайте орды повторных писем, если кто-то пытается с разных IP-адресов. В противном случае ботнет может сделать серьезный спам, и, что еще хуже, привести к тому, что важное сообщение попадет в папку спама. Не забудьте упомянуть, что они могут захотеть изменить свой пароль и / или обновить его.
Если вы установили лимиты для входа в IP, сделайте лимиты высокими. Во многих местах используются три удара, и вы выходите. Это чокнутый и недружественный пользователю. Реально должно быть не менее десяти или более, и когда вы нажмете на нее, вы получите запрет на основе времени, а не запрет «Позвонить в службу поддержки». Никто не собирается взломать пароль в десять попыток. Поэтому я рекомендую ограничение на вход в систему для каждого IP-адреса в 10 и ограничение для входа в систему для каждого пользователя от 1000 до 10000 (достаточно высокое, чтобы предотвратить атаки типа «отказ в обслуживании», но достаточно низкое, чтобы ботнет, вероятно, еще не взломал пароль) , У вас должна быть какая-то форма оповещения для пейджера sysadmin / on-call, что есть ботнет в работе, который срабатывает задолго до того, как вы достигнете этого порога. (Сохраняйте количество неудачных входов в систему для всех пользователей и отдельных пользователей, делайте скользящее среднее и предупреждайте, если оно пересекает любой из порогов. Помните, что если у кого-то есть достаточно большой список пользователей, вероятность успеха по крайней мере для одной учетной записи по всей пользовательская база примерно равна вероятности успеха при атаке только на одну учетную запись.)
Блокировать явных атакующих на брандмауэре. Срок действия запретов через некоторое время. Обязательно сделайте так, чтобы служба поддержки могла кого-то забанить, но убедитесь, что запрет каким-то образом связан с нарушением. Вы не должны снимать бан с кого-то, кто пытался взломать двадцать различных пользовательских логинов или что-то в этом роде Суждение здесь конечно, потому что дети сценариев с невиновными членами семьи и бабушками, которые были захвачены бот-сетями, могут, конечно, получить свой IP-запрет.
Если у вас действительно есть время, чтобы сделать все это, у вас будет отличная форма входа. Я сомневаюсь, что вам так нужно.