Intereting Posts
вопрос о печати после печати. это даже возможно? Php. У вашей установки PHP, похоже, отсутствует расширение MySQL, которое требуется WordPress Laravel – обновлять несколько записей с разными значениями Ошибка отображения 500 ошибок при любой ошибке в apache Как отправить недопустимый параметр выбора в WebTestCase с помощью symfony 2.3 Laravel 5.3 auth check in конструктор возвращает false Zend_JSON: Кодировать беспорядок – почему? Multi Select Dropdownlist Предварительный выбор Laravel 4 красноречивый ГДЕ с ИЛИ ИЛИ ИЛИ? осложнение регистрации php Yii: любой способ сохранить изображения в сжатой форме? MySQL Query возвращает пустое поле с AES_ENCRYPT preg_match (): Ошибка компиляции: значение символа в \ x {} или \ o {} слишком велико при смещении 27 по строке 25 PHP – регулярное выражение для проверки того, что <iframe> поступает с Google Maps Как я могу использовать PHP в качестве исходного для ионной структуры?

увеличение временной задержки для входа в систему, чтобы остановить перебор, хорошая идея?

Я установил свой db для регистрации каждой неудачной попытки входа в систему. Я думал, что умножу количество неудачных попыток с 0,05 секунды или что-то в этом роде. Что-то вроде:

time_nanosleep(0, (50000000 * $failed_attempts ) ); 

Больше попыток, которые хакер использует для угадывания пароля, требуется больше времени, чтобы проверять каждый раз. После проверки 100 паспортов он должен ждать 5 секунд между каждой попыткой.

Это хороший способ остановить перебор? Я идентифицирую пользователей по IP. Поэтому я предполагаю, что вы можете использовать приложение с несколькими прокси-серверами или что-то в этом роде, но, кроме того, я думаю, что это хорошая идея. Ребята, что вы думаете?

Solutions Collecting From Web of "увеличение временной задержки для входа в систему, чтобы остановить перебор, хорошая идея?"

Что-то вроде:

 time_nanosleep(0, (10000000000 * (log($failed_attempts)^10)) ); 

Это даст вам экспоненциально увеличивающееся окно попыток.

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

Ограничить повторы IP и использовать CAPTCHA. Не перегружайте свой сервер, подумайте KISS.

Вы должны стараться не использовать Sleep (), потому что он использует циклы процессора, и если у вас есть атака грубой силы с 10 000 IP-адресов, вы будете развивать 10 000 спящих () дочерних процессов или потоков, это вызовет нагрузку на ваш сервер.

Вместо этого попытайтесь заблокировать IP-адрес с помощью PHP. Что-то вроде этого.

 function block_ip($ip) { $deny = array("$ip"); if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) { header("HTTP/1.1 403 Forbidden"); exit(); } } 

Это не должна быть ваша стратегия против грубой силы, но это отличный компонент для этой стратегии, и IMO должна в значительной степени использоваться всегда.

Возможно, вы захотите увеличить это время экспоненциально, а не просто линейно; или сделать его исправленным, например, отрицать в течение часа после 5 неудачных попыток.

Я знаю, что видел это где-то, хотя я забыл, где. В примере, который я видел, они удвоили задержку с каждой неудачной попыткой. Если вы начали с, скажем, 0,1 секунды, обычный пользователь, который может ошибочно вводить свой пароль один или два раза, получает задержку в 0,4 секунды. Они даже не заметят. Но кто-то, кто пытается наложить грубую силу, нападает на него быстро, чтобы получить задержки в минутах или часах.

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

Боты действительно не заботятся о вашей задержке, будь то экспоненциальная или логарифмическая или что-то еще. Любая задержка, которую вы используете, может быть преодолена путем опроса. Поэтому не думайте о задержке. Подумайте о том, как ограничить количество попыток и использовать Google reCAPTCHA. Он использует шифрование с открытым ключом. Работает для устранения большинства ботов и сложнее взломать.