Грамматический анти-бот

Грамматический анти-бот

Идея анти-бота навеяна, как ни печально, безграмотностью населения интернета. Суть анти-бота в том, что человеку предлагается исправить ошибку в слове.
 
Сразу отмечу плюсы и минусы данного метода:
[+] бесплатно
[+] легкость установки
[+] уникальность идеи
[+] неограниченный объем слов
[+] возможность кастомизации своей фантазией
[-] бот написанный конкретно под данную капчу со временем легко будет ее обходить

Установка:
1. Открыть engine/modules/antibot.php и найти строку:
$im = new genrandomimage();

Перед ней добавить:
$wordarr =<<<HTML
вообщем|в общем
вобще|вообще
мужык|мужик
джып|джип
ворабей|воробей
отабражение|отображение
машына|машина
HTML;

$wordarr = explode("\n",trim($wordarr));
$words = array();
foreach($wordarr as $k=>$v){
	$v = trim($v);
	if($v){
		$v = explode("|",$v);
		if(count($v)>1){
			$v[0] = trim($v[0]);
			$v[1] = trim($v[1]);
			if($v[0] AND $v[1]) $words[] = array($v[0],$v[1]);
		}
	}
}

shuffle($words);
$_SESSION['sec_code_session'] = $words[0][1];
echo $words[0][0];
die();

2. Открыть шаблон с капчей, например register.tpl (приведен пример стандартного шаблона) и найти:
		<tr>
			<td class="label">
				Введите код<br />с картинки:<span class="impot">*</span>
			</td>
			<td>
				<div>{reg_code}</div>
				<div><input type="text" name="sec_code" style="width:115px" class="f_input" /></div>
			</td>
		</tr>

Заменить на:
		<tr>
			<td class="label">
				Исправьте ошибку<br />в слове:<span class="impot">*</span>
			</td>
			<td>
				<span id="cap-word-error"></span> <a href="#" onclick="aworderr();return false;">другое слово</a>
				<div><input type="text" maxlength="45" name="sec_code" style="width:115px" class="f_input" /></div>
				<script>
					function aworderr(){$.get(dle_root+"engine/modules/antibot.php",function(d){$("#cap-word-error").html(d)})}
					aworderr();
				</script>
			</td>
		</tr>

Готово!

Так же вместо исправления грамматики можно поставить антонимы. В общем на что вашей фантазии хватит. Чем больше слов вы поставите - тем лучше.
 
 
Автор: Sander
Источник:
  • Oxigen
  • 0
  • 228
Информация
Оставлять комментарии могут только зарегистрированные посетители.
  • Рейтинг@Mail.ru
  • Яндекс.Метрика