Многие комментарии, кажется, связывают "грубую силу" с атакой "распределенное отрицание".Они не то же самое.Для анализа «грубой силы» нам нужно рассмотреть только один злоумышленник, делающий поток запросов, чтобы выяснить пароль.
Ваше использование sleep
здесь хорошо.Замедление процесса авторизации онлайн является хорошо изученной особенностью сопротивления.Вместо того, чтобы перефразировать сказанное, посмотрите, что сказал Том Лик о безопасности. SE .
Хотя я мог бы предложить что-то более разумное.У вас не будет атаки, пока у вас не появятся доказательства повторных попыток.Таким образом, вам нужно считать попытки и замедляться как функция попыток: больше попыток, больше задержки.Это означает, что для вашего среднего пользователя, который получает, скажем, 3 попытки, они не испытывают никакой искусственной задержки.Но более чем, скажем, 3, вы начинаете добавлять в max(32, 2^(n-3))
сон - этого должно быть достаточно, чтобы отразить любого, кто пытается атаковать грубой силой онлайн.