Блокировщик №1: последовательные запросы
Итак, в вашей текущей настройке:
- пароли отправляются на сервер по одному
- вы ждете один ответ перед отправкой следующего
С помощью такого модуля, как time
, вы можете увидеть, сколько времени процессора тратится на ожидание ответов сервера, по сравнению с другими вещами в каждом цикле, чтобы определить свой рабочий цикл (работа/время ожидания по циклу). Если ваш рабочий цикл составляет 20% (т.е. 1 мс работа, 4 мс ожидание), вы сможете легко выполнить 5 параллельных запросов.
Блокатор №2: работа с одним ядром
Если вы нагружаете свой ЦП[ядро] параллельным ожиданием нескольких запросов, и у вас многоядерный ЦП (скажем, 4 ядра или nc=4
), вы сможете иметь 3x (nc-1 = 3
) столько запросов параллельно. (См. мой другой пост здесь о том, почему вы не можете просто перейти на 1000 потоков и ожидать 1000-кратного увеличения производительности: https://coderhelper.com/a/68667749/10761353)
Блокировщик №3: мощность сервера
Ваш сервер сможет отвечать только на определенное количество запросов в секунду. Таким образом, даже если ваш компьютер (например, с 4 ядрами и, следовательно, 3 cores x 5 threads/core = 15 threads
) выполняет много запросов параллельно, сервер может обрабатывать только (например) 10 запросов в секунду, и в этом случае вы, вероятно, будете:
- использовать все доступные ресурсы ответа [сервера],
- получать какую-то ошибку для (например) 5+ из каждых 15 запросов/сек,
- поднять счет за пользование (вероятно),
- запретить законным пользователям доступ к странице/сайту и
- активировать защиту/мониторинг злоупотреблений, что подводит меня к последнему пункту
Блокатор №4: Меры/системы предотвращения злоупотреблений
Компаниям нравится обслуживать своих клиентов — обычно именно так они получают прибыль. Когда законные пользователи не могут войти в систему из-за атак типа «отказ в обслуживании» (DoS) (независимо от того, пытаются ли они подобрать/подобрать пароль или просто доставить неудобства), компании, естественно, не ценят этого и хотят остановить это (когда-либо слышали об этом). маленький стартап под названием Cloudflare?). Меры включают:
- запрашивать капчу в дополнение к паролю, когда шаблоны трафика становятся подозрительными
- замедление/отбрасывание запросов от IP-адресов, которые делают слишком много запросов
- блокировка/запрет доступа с IP-адресов, которые сделали слишком много запросов в прошлом
- блокировка учетных записей пользователей после слишком большого количества неудачных попыток входа
- и многое, многое другое.
TL;DR
- многопоточность может быть полезна для распараллеливания, когда ваши задачи требуют много времени ожидания или у вас многоядерный ЦП - большинство из них в настоящее время)
- в 2021 году взлом веб-сервиса не очень практичен (и определенно непризнак хорошего пользователя сети)
- подбор хэша пароля может быть значительно ускорен с помощью мощных графических процессоров, что эффективно выводит оперативную защиту сайта из цикла угадывания.