yarweb Опубликовано 7 Ноября 2005 Жалоба Поделиться Опубликовано 7 Ноября 2005 Мод: AntiBrute v1.1Категория: МодыСовместимость: 2.0.xОписание:Этот хак в какой-то степени является защитой от брутфорса (метода перебора пароля).После указанного числа попыток, в случае неправильного ввода пароля предлагает ввести код безопасности.Идея создания возникла после установки мода D2-Lock Account After X Failed Login Attempts 1, который не удовлетворил потребностей и оказался не удобным. Версия 1.1 изменения:1. Исправлены ошибки. 2. Добавлена функция удаления логов антибрута через менеджер задач. Подробнее...Скачать Ссылка на комментарий Поделиться на других сайтах Прочее
*SHADOW* Опубликовано 7 Ноября 2005 Жалоба Поделиться Опубликовано 7 Ноября 2005 Скачал, сегодня вечером установлю.А если у меня другой префикс, просто поменять префикс в запросе?И это получается идет добавление вообще совершенно новой таблицы? Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 7 Ноября 2005 Жалоба Поделиться Опубликовано 7 Ноября 2005 Я думаю всё берется откуда-нить из conf_global, хотя не смотрел. Ссылка на комментарий Поделиться на других сайтах Прочее
yarweb Опубликовано 7 Ноября 2005 Автор Жалоба Поделиться Опубликовано 7 Ноября 2005 А если у меня другой префикс, просто поменять префикс в запросе?И это получается идет добавление вообще совершенно новой таблицы?На оба твоих вопроса ответ Да. Когда будете смотреть пример введите 4 раза любой неправильный пароль к любому существующему нику. Ссылка на комментарий Поделиться на других сайтах Прочее
kolobochek Опубликовано 7 Ноября 2005 Жалоба Поделиться Опубликовано 7 Ноября 2005 А что за код безопастноти? Его сам придумываешь? Ссылка на комментарий Поделиться на других сайтах Прочее
xetter Опубликовано 7 Ноября 2005 Жалоба Поделиться Опубликовано 7 Ноября 2005 Понял все, кроме этого:Открыть lang\russian\lang_global.php Найти: <?php Добавить ниже: $lang['no_reg_code'] = "Вы не ввели код безопасности."; $lang['err_reg_code'] = "Вы ввели неверный код безопасности, повторите снова."; Открыть: <===== ЧТО ОТКРЫТЬ??????? После последней ф-ции function (ShowForm($message="",$referer="")) вставить: //=========================================================================== // antibrute //=========================================================================== function antibrute($regid="") { Ссылка на комментарий Поделиться на других сайтах Прочее
yarweb Опубликовано 7 Ноября 2005 Автор Жалоба Поделиться Опубликовано 7 Ноября 2005 kolobochek, нет используется стандартная функция, такая же как и при регистрации[1131380374:1131381149]xetter, прошу прощения, видно торопилсяОткрыть: skin_cache\номер_скина\skin_register.php Обновил версию до 1.1 Ссылка на комментарий Поделиться на других сайтах Прочее
xetter Опубликовано 7 Ноября 2005 Жалоба Поделиться Опубликовано 7 Ноября 2005 Самое обидное, что я в skin_register.php ничего описанного не нашел Форум 2.0.1Ты ничего не перепутал?Может быть файл skin_login.php? Ссылка на комментарий Поделиться на других сайтах Прочее
yarweb Опубликовано 7 Ноября 2005 Автор Жалоба Поделиться Опубликовано 7 Ноября 2005 Вот блин стормозил (я), именно skin_login.php Ссылка на комментарий Поделиться на других сайтах Прочее
xetter Опубликовано 7 Ноября 2005 Жалоба Поделиться Опубликовано 7 Ноября 2005 Теперь следующая засада:Fatal error: Call to undefined function: antibrute() in /home/www/ssn/fot/ibp/sources/login.php on line 400Все проверил - сделано по инструкции. Ссылка на комментарий Поделиться на других сайтах Прочее
yarweb Опубликовано 7 Ноября 2005 Автор Жалоба Поделиться Опубликовано 7 Ноября 2005 Стучите в асю помогу Ссылка на комментарий Поделиться на других сайтах Прочее
=SPiRiT= Опубликовано 8 Ноября 2005 Жалоба Поделиться Опубликовано 8 Ноября 2005 А нельзя в инструкции написать как отредактировать скины через админку, но не через файлы? Ссылка на комментарий Поделиться на других сайтах Прочее
yarweb Опубликовано 8 Ноября 2005 Автор Жалоба Поделиться Опубликовано 8 Ноября 2005 Думаю надо так Заходим Управление шаблонами -> Вход в системуРедактировать блок ShowFormНайти: <td width='50%'><strong>{ipb.lang['enter_pass']}</strong></td> <td width='50%'><input type='password' size='25' name='PassWord' class='forminput' /></td> </tr> </table> </fieldset>Добавить ниже: <!--{LOG.ANTIBRUTE}-->Сохранить блок. В этом же разделе создаем новый фрагмент Название фрагмента шаблона: antibruteВходящие переменные: $regid=""Группа для фрагмента: skin_loginКод фрагмента:<br /> <input type='hidden' name='regid' value='$regid' /> <fieldset> <legend><strong>Подтверждение кода безопасности</strong></legend> <table width='100%' cellpadding='4' cellspacing='0'> <tr> <td width='1%' style='line-height:120%'> Введите 6 числовых знаков кода, отображённых в виде изображения. <input type='text' size='25' maxlength='32' name='reg_code' class='forminput' /> </td> <td align='center'><img src='{$ibforums->base_url}act=Login&CODE=image&rc={$regid}' border='0' alt='Loading Image' /></td> </tr> </table> </fieldset> Сохраняем всё Ссылка на комментарий Поделиться на других сайтах Прочее
=SPiRiT= Опубликовано 14 Ноября 2005 Жалоба Поделиться Опубликовано 14 Ноября 2005 спасибо! Ссылка на комментарий Поделиться на других сайтах Прочее
*SHADOW* Опубликовано 14 Ноября 2005 Жалоба Поделиться Опубликовано 14 Ноября 2005 Fatal error: Call to undefined function: antibrute() in /home/www/ssn/fot/ibp/sources/login.php on line 400Тот же трабл. Ссылка на комментарий Поделиться на других сайтах Прочее
pikachu Опубликовано 14 Ноября 2005 Жалоба Поделиться Опубликовано 14 Ноября 2005 *SHADOW*: проверь изменения в шаблонах и ребилд сделай Ссылка на комментарий Поделиться на других сайтах Прочее
Еve Опубликовано 15 Ноября 2005 Жалоба Поделиться Опубликовано 15 Ноября 2005 Сам мод я пока не смотрел, но думаю поставить.Так же, хотелось бы попросить автора добавить отображение логов попыток "взлома" пользователя для самого пользователя. Т.е. чтобы например пользователь "Вася", мог в случае попытки видеть кто, когда и с каким паролем хотел зайти на его аккаунт. Данная функция на мой взгляд была бы полезна для больших форумов, так как пользователи могли бы сами оперативно сообщить админу что из пытались поиметь. Заранее спасибо. Ссылка на комментарий Поделиться на других сайтах Прочее
yarweb Опубликовано 15 Ноября 2005 Автор Жалоба Поделиться Опубликовано 15 Ноября 2005 Так же, хотелось бы попросить автора добавить отображение логов попыток "взлома" пользователя для самого пользователя. Т.е. чтобы например пользователь "Вася", мог в случае попытки видеть кто, когда и с каким паролем хотел зайти на его аккаунт.Могу добавить ф-цию в частном порядке, за вознаграждение. Данная функция на мой взгляд была бы полезна для больших форумов, так как пользователи могли бы сами оперативно сообщить админу что из пытались поиметь.И что потом, кого будет наказывать админ? Ссылка на комментарий Поделиться на других сайтах Прочее
Indes Опубликовано 1 Июня 2006 Жалоба Поделиться Опубликовано 1 Июня 2006 На 2.1.* ставится? Ссылка на комментарий Поделиться на других сайтах Прочее
yarweb Опубликовано 2 Июня 2006 Автор Жалоба Поделиться Опубликовано 2 Июня 2006 если поставишь, значит ставится Ссылка на комментарий Поделиться на других сайтах Прочее
ruvid Опубликовано 19 Августа 2006 Жалоба Поделиться Опубликовано 19 Августа 2006 Думаю надо добавить "изменения блока ShowForm" в основное описание мода, ибо без этого мод не работает А так мод супер) Респект. Ссылка на комментарий Поделиться на других сайтах Прочее
yarweb Опубликовано 19 Августа 2006 Автор Жалоба Поделиться Опубликовано 19 Августа 2006 изменения блока ShowFormЭто где такое? Честна описание установки быстро писал не думаяP.S. Скоро версия обновится. Ссылка на комментарий Поделиться на других сайтах Прочее
U-N-O Опубликовано 9 Июня 2007 Жалоба Поделиться Опубликовано 9 Июня 2007 В общем, попытался я переделать на версию 2.1.7Но не чего неполучилось помогите если сможете antibrute.php<?php if ( !defined( 'IN_IPB' ) ) { print "<h1>Некорректный адрес</h1>Вы не имеете доступа к этому файлу напрямую. Если вы недавно обновляли форум, вы должны обновить все соответствующие файлы."; exit(); } class antibrute { var $ipsclass; var $data = 0; var $member; var $used = 0; function get_attempts_used() { $r = $this->ipsclass->DB->simple_exec_query(array('select' => 'attempts, time', 'from' => 'antibrute', 'where' => "mid='".$this->ipsclass->member['id']."' AND ip='".$this->ipsclass->ip_address."'")); if (!$this->ipsclass->DB->get_num_rows()) { return; } $this->used = intval($r['attempts']); } function check_account() { if ($this->used >= $this->ipsclass->vars['attempts']) { $this->data = 1; } } function increment_attempts() { $r = $this->ipsclass->DB->simple_exec_query(array('select' => 'attempts, time', 'from' => 'antibrute', 'where' => "mid='".$this->ipsclass->member['id']."' AND ip='".$this->ipsclass->ip_address."'")); if (!$this->ipsclass->DB->get_num_rows()) { $this->ipsclass->DB->do_insert('antibrute', array('mid' => $this->ipsclass->member['id'], 'ip' => $this->ipsclass->ip_address, 'attempts' => '1', 'time' => time())); return; } if ($this->used < $this->ipsclass->vars['attempts']) { $this->ipsclass->DB->simple_exec_query(array('update' => 'antibrute', 'set' => 'attempts=attempts+1', 'where' => "mid='".$this->ipsclass->member['id']."' AND ip='".$this->ipsclass->ip_address."'")); $this->used++; } } function clear() { $this->used = 0; $this->data = 0; $this->ipsclass->DB->simple_exec_query( array( 'delete' => 'antibrute', 'where' => "mid='".$this->ipsclass->member['id']."' AND ip='".$this->ipsclass->ip_address."'")); } } ?>Readme.txtСоздать таблицу: CREATE TABLE `ibf_antibrute` ( `id` mediumint(8) NOT NULL auto_increment, `mid` mediumint(8) NOT NULL default '0', `ip` varchar(16) NOT NULL default '', `attempts` tinyint(10) NOT NULL default '0', `time` int(10) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM; *** Загрузить файл antibrute.php в папку sources/lib/ Открыть sources\login.php Найти: var $modules = ""; Добавить ниже: var $ab = 0; *** Найти: case '06': $this->delete_cookies(); break; Добавить ниже: case 'image': $this->show_image(); break; *** Найти: /*-------------------------------------------------------------------------*/ // LOG IN FORM /*-------------------------------------------------------------------------*/ function log_in_form($message="") Добавить выше: /*-------------------------------------------------------------------------*/ // ANTIBRUTE / /*-------------------------------------------------------------------------*/ function show_image() { if ( $this->ipsclass->input['rc'] == "" ) { return false; } // Get the info from the db $this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'reg_antispam', 'where' => 'regid='.trim(addslashes($this->ipsclass->input['rc'])) ) ); $this->ipsclass->DB->simple_exec(); if ( ! $row = $this->ipsclass->DB->fetch_row() ) { return false; } $this->ipsclass->show_gd_img($row['regcode']); } *** Найти: $this->output .= $this->ipsclass->compiled_templates['skin_login']->ShowForm( $this->ipsclass->lang['please_log_in'], htmlentities(urldecode($_SERVER['HTTP_REFERER'])), $extra_form ); Добавить ниже: //------------------------------ // ANTIBRUTE //------------------------------ if ( $this->ab == 1 ) { $regid = md5( uniqid(microtime()) ); mt_srand ((double) microtime() * 1000000); $reg_code = mt_rand(100000,999999); $this->ipsclass->DB->do_insert( 'reg_antispam', array ( 'regid' => $regid, 'regcode' => $reg_code, 'ip_address' => $this->ipsclass->ip_address, 'ctime' => time(), ) ); $this->output .= str_replace( "<!--{LOG.ANTIBRUTE}-->", $this->ipsclass->compiled_templates['skin_login']->antibrute($regid), $extra_form ); } *** Найти: //------------------------------ // Check auth //------------------------------ Добавить выше: //------------------------------ // ANTIBRUTE //------------------------------ require_once(ROOT_PATH.'sources/lib/antibrute.php'); $this->antibrute = new antibrute(); $this->antibrute->member =& $member; $this->antibrute->get_attempts_used(); $this->antibrute->check_account(); if ( $this->antibrute->data == 1){ if ($this->ipsclass->input['regid'] == "") { $this->ab = 1; $this->log_in_form('no_reg_code'); return; } $this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'reg_antispam', 'where' => "regid='".trim(addslashes($this->ipsclass->input['regid']))."'" ) ); $this->ipsclass->DB->simple_exec(); if ( ! $row = $this->ipsclass->DB->fetch_row() ) { $this->ab = 1; $this->log_in_form('err_reg_code'); return; } if ( trim( intval($this->ipsclass->input['reg_code']) ) != $row['regcode'] ) { $this->ab = 1; $this->log_in_form('err_reg_code'); return; } $this->ipsclass->DB->simple_exec_query( array( 'delete' => 'reg_antispam', 'where' => "regid='".trim(addslashes($this->ipsclass->input['regid']))."'" ) ); } *** Найти: if ( $this->han_login->return_code != 'SUCCESS' ) { $this->log_in_form( 'wrong_auth' ); } Заменить на: if ( $this->han_login->return_code != 'SUCCESS' ) { $this->antibrute->increment_attempts(); if ( $this->antibrute->used == $this->ipsclass->vars['attempts']) $this->ab = 1; $this->log_in_form( 'wrong_auth' ); } $this->antibrute->clear(); Открыть lang\russian\lang_global.php Найти: Найти: ); ?> Добавить выше: 'no_reg_code' = "Вы не ввели код безопасности.", 'err_reg_code' = "Вы ввели неверный код безопасности, повторите снова.",Как изменять скины описано в этой темевобщем я не могу понять в чем ошибкаПри входе на форум выскакивает ошибка в строке 19$r = $this->ipsclass->DB->simple_exec_query(array('select' => 'attempts, time', 'from' => 'antibrute', 'where' => "mid='".$this->ipsclass->member['id']."' AND ip='".$this->ipsclass->ip_address."'")); файла antibrute.php Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения