##############################################################
## MOD Title: Kill bot
## MOD Author: CodeWorld < codeworld ]@[ yandex.ru >
## MOD Description: breaked bot registration
## MOD Version: 0.0.3 [phpBB 2.0.20]
##
## Installation Level: Easy
## Installation Time: 5 Minutes
## Files To Edit (2): includes/usercp_register.php
## templates/subSilver/profile_add_body.tpl
##############################################################
## MOD History:
##
## 2006-05-04 - Version 0.0.1
## - its created
##
## 2006-05-05 - Version 0.0.2
## - log in bots.html
##
## 2006-05-06 - Version 0.0.3
## - logging what user write in control field
##
##############################################################
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/profile_add_body.tpl
#
#-----[ FIND ]------------------------------------------
#
<tr>
<td class="row1"><span class="gen">{L_CONFIRM_PASSWORD}: * </span><br />
<span class="gensmall">{L_PASSWORD_CONFIRM_IF_CHANGED}</span></td>
<td class="row2">
<input type="password" class="post" style="width: 200px" name="password_confirm" size="25" maxlength="32" value="{PASSWORD_CONFIRM}" />
</td>
</tr>
#
#-----[ AFTER ADD ]------------------------------------------
#
<!-- BEGIN switch_user_logged_out -->
<tr>
<td class="row1" width="38%"><span class="gen">Enter url of this site: * </span><br /><span class="gensmall">e.g. 'my.site.com'</span></td>
<td class="row2"><input type="text" class="post" style="width:200px" name="mycurl" size="25" maxlength="55" value="" /></td>
</tr>
<!-- END switch_user_logged_out -->
#
#-----[ OPEN ]------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND ]------------------------------------------
#
if ( $mode == 'editprofile' )
{
if ( $user_id != $userdata['user_id'] )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Wrong_Profile'];
}
}
#
#-----[ AFTER ADD ]------------------------------------------
#
//-------------------- kill bot mod ----------------------------
else if ((strpos(strtolower($_POST['mycurl']),strtolower($_SERVER["HTTP_HOST"]))===false))
{
$error = TRUE;
$error_msg .= 'Site url not correct';
function killbot_log($date_) {
$mystr=$date_.'<br>';
if(@copy("bots.html", "bots.tmp"))
{
if($w=fopen("bots.html","w+"))
{
flock($w,2);
fwrite($w,$mystr);
if(!$r=fopen("bots.tmp","r+")) die("can't open file");
flock($r,1);
while($mes=fgets($r,10240))
{
fputs($w,$mes);
}
flock($r,3);
fclose($r);
flock($w,3);
fclose($w);
unlink("bots.tmp");
}
} else { $f = fopen("bots.html","at+") or die("FILE ERROR"); flock($f,LOCK_EX); fputs($f,$mystr); fclose($f); }
}
$mymsg='<b>['.date("m.d.y H:i").']</b> <ul>Ник: '.$username;
$mymsg.='<br>IP: '.$_SERVER["REMOTE_ADDR"];
if ($email!=='') $mymsg.='<br>Email: '.$email;
if (trim($website)!=='') $mymsg.='<br>Сайт: <a href="'.$website.'">'.$website.'</a>';
if ($interests!=='') $mymsg.="<br>Интересы: $interests";
if ($occupation!=='') $mymsg.="<br>Род занятий: $occupation";
if ($signature!=='') $mymsg.="<br>Подпись: $signature";
if (trim($_POST['mycurl'])!=='') $mymsg.="<br>В поле ввёл: ".addslashes($_POST['mycurl']);
$mymsg.='</ul>';
killbot_log($mymsg);
}
//------------------ end kill bot mod --------------------------
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Описание
При регистрации появляется дополнительное поле, в которое надо ввести адрес форума. Если оно вводится не верно, то пользователь получает уведомление, о том, что поле заполнено не правильно и в корне форума создаётся файл bots.html куда записываются все не удачные попытки регистрации.
Всем ботам на зло!
Аминь.
Последний раз редактировалось CodeWorld 07.05.2006 8:08, всего редактировалось 16 раз.
не, я твой мод не ставил.
просто сделал себе чтобы не залогиненые юзеры не могли сайт вводить.
половина ботов при регистрации отваливается сразу. а юзер когда зарегился и залогинился - может ввести. если хочет )))
Он подругому пашет. Ты наверное не правильно понял. Там появляется новое поле для ввода сайта на котором ты находишься (при регистрации). Если вводишь не то, то не регишься. Если вводишь то, всё ок. Боты то тупые.. так что нах их А вот сам мод ща поправлю, что бы уже зарегистрированные пользователи в профиле не видели это поле, которое должно отображаться при регитсрации
) у меня стоял похожий мод, просто дело в том, что не все боты вводят сайт =(
Добавлено спустя 33 минуты 46 секунд:
Появилась идея. Можно поле с сайтом забивать автоматом. Ява скриптом. Тогда его можно вообще невидимым сделать! Вот эта реально круто будет Побежал за книжкой DHTML
Добавлено спустя 4 часа 43 минуты 33 секунды:
Добавил логгирования ботов. В корне форума появляется файл bots.html. Я пока записываю все неудачные попытки, а думаю что стоит записывать только те, в которых поле пустое, потому что поидее пользователь может ошибиться, а вот бот в любом случае оставит его пустым