Функция sleep в скрипте авториации есть ни что иное, как DoS атака, в случае подбора пароля. Вряд-ли взломщик будет производить перебор через одно соеденение. Запустив, к примеру, 30 потоков, получаем 30 одновременно работающих скриптов на сервере. Ресурсы сервера не безграничны, и может случится, что в момент этой атаки реальные пользователи сайта не смогут его открыть. Использовать данную функцию нужно очень аккуратно и для предотвращения подбора пароля она никоем образом не подходит. В случае регистрации попыток перебора необходимо отдавать клиенту как можно меньше траффика и задействовать для ее обнаружения как можно меньше процессорных и других ресурсов сервера.
white phoenix
Ban'ить по IP это бред, т.к. в наше время толстой пачкой быстрых прокси никогда не увидишь, sid и cookie даже не обсуждается.
Почему бред? Согласен, проксей много, но вариант, когда с 1-го ip приходит более 10 попыток ввода неверных данных аутентификации в течении 10 сек - явно указывает уже на злонамеренную попытку подбора и его нужно присекать. Реальный пользователь никак не сможет физичесски вводить вручную данные в форму с такой скоростью.
На сколько "толстой" должна быть "пачка проксей", чтобы используя 1 проксю не более 10 раз взломать цифробуквенный пароль из 5 символов?!

Тут 10000 проксей даже не помогут
Если даже предположить, что злоумышленник будет распологать неограниченным кол-вом ip-адресов для перебора пароля, (случай явно из разряда фантастики) то можно сделать доп. проверку по логину: если под логином "login" было осуществленно более 5000 неудачных попыток авторизации, при успешном входе в систему отобрать у этого пользователя все права, отослать пользователю на почтовый ящик письмо с новым паролем, ссылкой на разблокировку аккаунта и предупреждением, и полный доступ в систему, до разблокировки аккаунта не давать.
-~{}~ 25.12.05 01:48:
Vladson
если человек после не верного пароля вводит следующий раньше чем через секунду, то даже если второй раз был введён правильный то скрипт говорит что пароль не правильный...
Какой в этом смысл? Да и как определяется этот самый человек: по IP, куке или как?
betik Давать юзерам пароли "из 8-ми неподбираемых символов" - тоже, что заставить этого самого юзера либо вообще отказаться от такого сервиса, либо записать этот пароль на бумажку и приклеить к монитору...
Предложение
kruglov ввести white-list я считаю разумным. Наполнять его нужно автоматичесски, исходя из данных предыдущих заодов пользователя.
Ниже предлагаю более усовершенствованную логику скрипта авторизации:
1. Каждая неверная попытка входа записывается в БД в таблицу danger: ip, время, логин
2.1. При запуске любого доступного пользователю скрипта в самом его начале проверяется, не встречается ли IP пользователя в базе danger более 10 раз в течении последних 10 секунд, и если да выдается заголовок ошибки Access denied. Эта же функция и чистит устаревшие записи.
2.2. При 10-ой неверной попытке войти в систему под 1-м логином, но с разных IP, уже за 2 минуты, выводить цифры на картинке, как предложил
white phoenix