![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Dima85 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 19.7.2007 Репутация: нет Всего: нет |
Сейчас пришла очередная идея. Если нельзя заблокировать IP то может можно хотя бы усложнить жизнь роботам подбирающим пароли.
Как вы смотрите на то если сделать задержку на авторизацию, если конечно возможно такое реализовать на perl. Тоесть мы вводим пароль, если он неправильный join.pl выводит надпись вы заблокированы на 5,10 секунд и к нему неимеет доступ никто в течение этого времени (тоесть не может пройти авторизацию). Дописывая это сообщение пришел в голову достаточно большой недостаток. Ведь если робот будет подбирать пароль и в это время я буду проходить авторизацию - у меня мало шансов т.к. мой join.pl постоянно будет в ожидание. Или я ошибаюсь? Хотя с другой стороны авторизацией пользуется только 3 человека как правело раз в неделю и вероятность того что именно в это время будет работать подборщик маловероятно. P.S. С задержкой уже немного разобрался, но не понимаю почему такая реализация:
Почему скрипт засыпает на 20 секунд прежде чем вывести print. Print ведь стоит первым. Так же все еще интересно услышать ваши мысли в целом об этом всем. Это сообщение отредактировал(а) Dima85 - 6.9.2009, 23:53 |
|||
|
||||
TDrive |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 6.9.2009 Репутация: нет Всего: нет |
если у вас авторизация только для своих нескольких людей то можно кроме пароля хранить IP адреса этих людей и проверять при авторизации по IP адресам чужие или свои. если адреса динамические можно хранить адрес подсети например 189.189.*.* короче по ситуации смотря с каких IP брутфорсят. а так самое надёжное и без файлов это грамотная капча. |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: нет Всего: 18 |
||||
|
||||
Dima85 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 19.7.2007 Репутация: нет Всего: нет |
TDrive, адреса постоянно меняються, сети так же.
shamber, расскажите пожалуйста подробней. |
|||
|
||||
TDrive |
|
||||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 6.9.2009 Репутация: нет Всего: нет |
функция print() в перле использует для вывода библиотеку iostream из С/С++ а там вывод сообщения происходит не сразу, а сначала собирается в буфер и выводится когда буфер полный или когда программа закончила работу как в вашем примере. есть для вывода ещё функция syswrite() которая не использует буфер а выводит сразу например:
будет выведено сообщение а потом программа ждёт 20 сек а если написать например
то сначала будет напечатано "<h2>Ошибка</h2><p>Попытка авторизации не удалась.</p>" а через 20 сек "bla bla bla" короче print() не выводит сообщение а записывает сообщение в буфер ввода/вывода а потом система читает из этого буфера. есть ещё буферы в ОС, аппаратные буферы. |
||||
|
|||||
TDrive |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 6.9.2009 Репутация: нет Всего: нет |
да есть ещё переменная $|
если $|=1 то буферизация выключается если $|=0 то буферизация включена |
|||
|
||||
Dima85 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 19.7.2007 Репутация: нет Всего: нет |
Пробовал
Не работает. Возможно я что-то упустил? Скрипт ничего не выводит, ждет 20 секунд и вобщем-то все. Ошибок тоже нет. Так же пробовал
В этом случае сначала срабатывает sleep потом print. |
||||
|
|||||
TDrive |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 6.9.2009 Репутация: нет Всего: нет |
||||
|
||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 2 Всего: 31 |
Товарищи, вы какую-то странную идею обсуждаете - sleep(20) - усыпит процесс веб-сервера на 20 сек.
Это же готовая DOS атака. Даже напрягаться не придется - просто постоянные попытки авторизации в 30 потоков и сервера нет. имхо это не вариант. |
|||
|
||||
TDrive |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 6.9.2009 Репутация: нет Всего: нет |
ИМХО самое простое пароли минимум 12 символов использовать из букв,цифр,спец знаков и пускай брутфорсят несколько лет.
|
|||
|
||||
Dima85 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 19.7.2007 Репутация: нет Всего: нет |
sir_nuf_nuf, спасибо! Значит в топку эту идею.
TDrive, ну просто иногда не приятно, посматриваешь логи а там по 200-800 попуток подбора пароля с одного, двух IP и это за неделю. Это сообщение отредактировал(а) Dima85 - 8.9.2009, 11:50 |
|||
|
||||
Dima85 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 19.7.2007 Репутация: нет Всего: нет |
Возможно у вас есть какие-то наброски того же но без use DB_File, мой сервер к сожаленью не поддерживает это. Был бы вам очень благодарен. |
||||
|
|||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 2 Всего: 31 |
Это как так ?
DB_File - идет в комплекте вместе с perl - должен быть. Если только в Windows может не работать.. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |