Хак «Апгрейд капчи аля Яндекс»
47
Ввиду последних событий, а именно и , решил найти альтернативную капчу. Нашел случайно у себя в папке со скриптами какой-то калечный аналог , откуда скачал уже не помню, поэтому первоначального автора указать не могу. Считаю капчу Яндекса одной из самых лучших (и ), поэтому допилил этот скрипт и прикрутил к ЛС. Эта капча основана на kcaptcha, которая используется в стандартной комплектации движка, поэтому безопасность 100% не хуже и даже лучше — можно смело ставить, если нравится, конечно.
Скрин:

Установка:
1) Скачиваем ( или ) и распаковываем архив.
Папку Zloy_Taburet кладем в \classes\lib\external\
Изображения zloy_taburet_arrow.gif и zloy_taburet_post.gif кладем в папку images вашего шаблона:
для шаблона new — \templates\skin\new\images\
для шаблона developer — \templates\skin\developer\images\
2) Находим в файле \templates\language\russian.php строчку:
3) Вставляем капчу в шаблон:
Для шаблона NEW
3.1) Находим в файле \templates\skin\new\actions\ActionRegistration\index.tpl:
3.2) Находим в файле \templates\skin\new\css\style.css строчку:
Для шаблона DEVELOPER
3.3) Находим в файле \templates\skin\developer\actions\ActionRegistration\index.tpl:
3.4) Находим в файле \templates\skin\developer\css\style.css строчку:
4) Находим в файле \classes\actions\ActionRegistration.class.php строчку:
Если вам не нужна старая капча, то удалите папку \classes\lib\external\kcaptcha\
Вроде бы все. Надеюсь ничего не забыл.
Товарищи, быть может у кого-то из вас есть лишние инвайты на хабр и лепру? Буду очень благодарен, если поделитесь. Заранее спасибо.
Скрин:

Установка:
1) Скачиваем ( или ) и распаковываем архив.
Папку Zloy_Taburet кладем в \classes\lib\external\
Изображения zloy_taburet_arrow.gif и zloy_taburet_post.gif кладем в папку images вашего шаблона:
для шаблона new — \templates\skin\new\images\
для шаблона developer — \templates\skin\developer\images\
2) Находим в файле \templates\language\russian.php строчку:
'registration_captcha' => 'Введите цифры и буквы',и меняем на:'registration_captcha' => 'Введите цифры слева',Тоже самое нужно сделать со всеми локализациями.3) Вставляем капчу в шаблон:
Для шаблона NEW
3.1) Находим в файле \templates\skin\new\actions\ActionRegistration\index.tpl:
{$aLang.registration_captcha}:<br />
<img src="{$DIR_WEB_ROOT}/classes/lib/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}">
<p><input type="text" class="input-text" style="width: 80px;" name="captcha" value="" maxlength=3 /></p>и меняем на:
<div class="zloy_taburet">
<img class="taburet" src="{$DIR_WEB_ROOT}/classes/lib/external/Zloy_Taburet/index.php?{$_sPhpSessionName}={$_sPhpSessionId}" onclick="this.src='{$DIR_WEB_ROOT}/classes/lib/external/Zloy_Taburet/index.php?{$_sPhpSessionName}={$_sPhpSessionId}&n='+Math.random(); return false;" alt="" />
<img class="captcha" src="{$DIR_STATIC_SKIN}/images/zloy_taburet_arrow.gif" alt="" />
<div class="zloy_taburet_license">
<label for="zloy_taburet_name">{$aLang.registration_captcha}:</label><br />
<p><input type="text" class="input-text" style="width:80px;" name="zloy_taburet_name" value="" maxlength="6" /></p>
</div>
<div class="clear"></div>
</div>3.2) Находим в файле \templates\skin\new\css\style.css строчку:
.lite-center .input-note { display: block; color: #bbb; font-size: 11px; line-height: 14px; } и после нее добавляем это:.lite-center .zloy_taburet { background:url("../images/zloy_taburet_post.gif") no-repeat 0px 0px; }
.lite-center .zloy_taburet img.taburet { width:200px; height:60px; float:left; padding:7px 0 7px 5px; cursor:pointer; }
.lite-center .zloy_taburet img.captcha { float:left; margin:30px 8px 0 15px; }
.lite-center .zloy_taburet .zloy_taburet_license { float:left; margin-top:5px;}
.lite-center .zloy_taburet .clear { clear:both; padding-bottom:40px; }Для шаблона DEVELOPER
3.3) Находим в файле \templates\skin\developer\actions\ActionRegistration\index.tpl:
<p><label for="captcha">{$aLang.registration_captcha}:</label>
<img src="{$DIR_WEB_ROOT}/classes/lib/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}" /><br />
<input type="text" name="captcha" id="captcha" maxlength="3" class="input-text captcha" value="" /></p>и меняем на:
<p>
<div class="zloy_taburet">
<img class="taburet" src="{$DIR_WEB_ROOT}/classes/lib/external/Zloy_Taburet/index.php?{$_sPhpSessionName}={$_sPhpSessionId}" onclick="this.src='{$DIR_WEB_ROOT}/classes/lib/external/Zloy_Taburet/index.php?{$_sPhpSessionName}={$_sPhpSessionId}&n='+Math.random(); return false;" alt="" />
<img class="captcha" src="{$DIR_STATIC_SKIN}/images/zloy_taburet_arrow.gif" alt="" />
<div class="zloy_taburet_license">
<label for="zloy_taburet_name">{$aLang.registration_captcha}:</label>
<p><input type="text" class="input-text" style="width:80px;" name="zloy_taburet_name" value="" maxlength="6" /></p>
</div>
<div class="clear"></div>
</div>
</p>3.4) Находим в файле \templates\skin\developer\css\style.css строчку:
.center-block .error { color: #f20909; } и после нее добавляем это:.center-block .zloy_taburet { height:74px; background:url("../images/zloy_taburet_post.gif") no-repeat 0px 0px; }
.center-block .zloy_taburet img.taburet { width:200px; height:60px; float:left; padding:7px 0 7px 5px; cursor:pointer; }
.center-block .zloy_taburet img.captcha { float:left; margin:30px 8px 0 15px; }
.center-block .zloy_taburet .zloy_taburet_license { float:left; margin-top:4px;}
.center-block .zloy_taburet .clear { clear:both; }4) Находим в файле \classes\actions\ActionRegistration.class.php строчку:
if (!isset($_SESSION['captcha_keystring']) or $_SESSION['captcha_keystring']!=strtolower(getRequest('captcha'))) {и меняем на:if (!isset($_SESSION['captcha_keystring']) or $_SESSION['captcha_keystring']!=strtolower(getRequest('zloy_taburet_name'))) {Если вам не нужна старая капча, то удалите папку \classes\lib\external\kcaptcha\
Вроде бы все. Надеюсь ничего не забыл.
Товарищи, быть может у кого-то из вас есть лишние инвайты на хабр и лепру? Буду очень благодарен, если поделитесь. Заранее спасибо.
- +26
- 21 августа 2009, 22:03
- Romelyus
Рано я обрадовался:( Эту капчу тоже пробивают собаки… опять с того же IP 82.193.96.212 зарегалось 2-е левых… Все та же бредятина в поле «о себе», левый маил и ссылка на сайт. Придется все таки через htaccess пока обороняться.
Раз такие пироги, то может ? По-моему, обычный спам-бот не смог бы так быстро перестроится под новую капчу, ибо она значительно отличается от стандартной. Если это, конечно, не бот, которого целенаправленно травят на вас и переписывают его алгоритмы в режиме реального времени. В таком случае поможет только блокировка по IP. И то временно, пока бот не научится лазить через прокси. Тогда только инвайты спасут =)
если регают ботом/софтом следует подумать не о замене капчи а в первую очередь убрать везде слово «captcha».
Тоесть заменить его другим словом совсем не пахожим на капчу в шаблоне, в названии формы, в цсс… боту чтоб найти капчу нужно её как то распознать же =) а вы явно указываете «captcha» «тут» =)
Тоесть заменить его другим словом совсем не пахожим на капчу в шаблоне, в названии формы, в цсс… боту чтоб найти капчу нужно её как то распознать же =) а вы явно указываете «captcha» «тут» =)
а вы явно указываете «captcha» «тут» =)скорее «я капча» =)
А вобще дело говорите, стоит заменить имена айди и классов.
угу и добавить двухступенчатую регистрацию =)
зарегал первую половину данных, получил мыло, прошел по ссылке, дорегистрировался + рекапча + доп вопрос (а лучше три и тес на айкью) =)
зарегал первую половину данных, получил мыло, прошел по ссылке, дорегистрировался + рекапча + доп вопрос (а лучше три и тес на айкью) =)
По-моему, в ГИТИС будет легче поступить, чем пройти такую регистрацию =)
Вечерком обновлю пост — изменю имена классов. Там только одно маленькое добавление будет — основной экшн регистрации нужно будет чуток подправить, чтобы капча заработала с новым именем.
Вечерком обновлю пост — изменю имена классов. Там только одно маленькое добавление будет — основной экшн регистрации нужно будет чуток подправить, чтобы капча заработала с новым именем.
ну что там поправить нужно я в старой капце поправил уже ;-)
но вобще нужно придумывать чтото простое и новое, тогда ещё на год полтора от спама уйдем.
и стопудняк это простое и новое как всегда лежит под носом.
PPS. я поддерживаю в раше один неизвестный движек… там реализация капчи идёт с фенечкой. если юзер переключился со страницы с капчей а потом вернулся чтоб её ввести то капча незасчитываеться (я имею ввиду переход — закрыл вкладку. открыл вкладку со страницей (сложил развернул окно)) только я честно хз как там это сделано. пол тыщи юзеров поставили цмску, про спам небыло пока нислова.
но вобще нужно придумывать чтото простое и новое, тогда ещё на год полтора от спама уйдем.
и стопудняк это простое и новое как всегда лежит под носом.
PPS. я поддерживаю в раше один неизвестный движек… там реализация капчи идёт с фенечкой. если юзер переключился со страницы с капчей а потом вернулся чтоб её ввести то капча незасчитываеться (я имею ввиду переход — закрыл вкладку. открыл вкладку со страницей (сложил развернул окно)) только я честно хз как там это сделано. пол тыщи юзеров поставили цмску, про спам небыло пока нислова.
Со спамом не только автор должен бороться — это долг каждого, кто пользуется LS =)
«Вставайте, люди русские» ©
В этой войне мы должны победить =)
«Вставайте, люди русские» ©
В этой войне мы должны победить =)
что если сделать поля ввода информации, при регистрации пользователя предзаполненными?
то есть чтобы ввести какую-то информацию в строку, придется предварительно стереть уже написанное test, test@test.ru и тд
то есть чтобы ввести какую-то информацию в строку, придется предварительно стереть уже написанное test, test@test.ru и тд
Хм. Может быть и поможет. Смотря как работает бот. Но попробовать никто не запрещает =) Имеет смысл делать предзаполненным только поле почты — если к test@test.ru бот добавит свой адрес, не очистив поле, то регулярка заругается, что введен неправильный формат мыла.
Мне проверять не на чем. Может быть yuri25 согласится потестировать на его сайте такой способ, раз уж так получилось, что его боты одолели =)
Мне проверять не на чем. Может быть yuri25 согласится потестировать на его сайте такой способ, раз уж так получилось, что его боты одолели =)
Для WordPress появилась капча, в которой надо вращать картинки до правильного положения, посмотреть можно вот на этом в комментах, а скачать плагин для WP кажется , если её доработать напильником, чтоб она работала на LS, то Xrumer её вроде не пробивает, возможно было бы счастье :) Сам к сожалению плохо хнаю php, чтоб такое реализовать, возможно кто-то заморочится, думаю, что эту капчу не намного проще было дорабатывать напильником.
Спасибо за хак. Прикрутил, только у меня почему-то 2 формы для ввода цифр и они под картинкой с цифрами. Не подскажите почему так?
Здравствуйте! Пытаюсь настроить, ливстрит под свои нужды, пока получалось с помощью чтения топиков на вашем сайте, но возник вопрос на который я не могу найти решения.
Мне нужно, чтоб при регистрации пользователь указал только имейл и ввел капчу, а ему на ящик прийдет сгенерированый пароль и ник сгенерированый по типу userid0036, чтоб юзеры не выдумывали пароли и логины.
Мне нужно, чтоб при регистрации пользователь указал только имейл и ввел капчу, а ему на ящик прийдет сгенерированый пароль и ник сгенерированый по типу userid0036, чтоб юзеры не выдумывали пароли и логины.
Можно как то сделать изображение капчи почетче? Иногда сам не могу разобрать. Подскажите плиз кто знает. Спасибо.
файл index.php в папке со скриптом каптчи
Строка 8
Меняем значение 90 (от 1 до 100 вроде)
Строка 8
$jpeg_quality = 90;Меняем значение 90 (от 1 до 100 вроде)
Ребят, помогите. Все сделал как тут описано, но сама картинка не отображается. В чем проблема?
Вот, посмотрите сами:
Вот, посмотрите сами:
'res/watermark.png' is not a valid PNG file
Ватермарк у Вас кривой судя по всему… попробуйте другой…

- KravchenkoM
- 27 декабря 2009, 18:58
- ↑
- ↓
Для версии 0.4 и выше есть несколько особенностей. Вот по пунктам соответственно:
1) Копировать папку по адресу: engine/lib/external/
3.1) Находим в файле /templates/skin/new/actions/ActionRegistration/index.tpl:
и меняем на:
Должно работать:) Автору респект!
1) Копировать папку по адресу: engine/lib/external/
3.1) Находим в файле /templates/skin/new/actions/ActionRegistration/index.tpl:
{$aLang.registration_captcha}:<br />
<img src="{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}" onclick="this.src='{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}&n='+Math.random();">
<p><input type="text" class="input-text" style="width: 80px;" name="captcha" value="" maxlength=3 /></p>и меняем на:
<div class="zloy_taburet">
<img class="taburet" src="{cfg name='path.root.engine_lib'}/external/Zloy_Taburet/index.php?{$_sPhpSessionName}={$_sPhpSessionId}" onclick="this.src='{cfg name='path.root.engine_lib'}/classes/lib/external/Zloy_Taburet/index.php?{$_sPhpSessionName}={$_sPhpSessionId}&n='+Math.random(); return false;" alt="" />
<img class="captcha" src="{cfg name='path.static.skin'}/images/zloy_taburet_arrow.gif" alt="" />
<div class="zloy_taburet_license">
<label for="zloy_taburet_name">{$aLang.registration_captcha}:</label><br />
<p><input type="text" class="input-text" style="width:80px;" name="zloy_taburet_name" value="" maxlength="6" /></p>
</div>
<div class="clear"></div>
</div>Должно работать:) Автору респект!
Если быть точным, менять на:
<div class="zloy_taburet">
<img class="taburet" src="{cfg name='path.root.engine_lib'}/external/Zloy_Taburet/index.php?{$_sPhpSessionName}={$_sPhpSessionId}" onclick="this.src='{cfg name='path.root.engine_lib'}/external/Zloy_Taburet/index.php?{$_sPhpSessionName}={$_sPhpSessionId}&n='+Math.random(); return false;" alt="" />
<img class="captcha" src="{cfg name='path.static.skin'}/images/zloy_taburet_arrow.gif" alt="" />
<div class="zloy_taburet_license">
<label for="zloy_taburet_name">{$aLang.registration_captcha}:</label><br />
<p><input type="text" class="input-text" style="width:80px;" name="zloy_taburet_name" value="" maxlength="6" /></p>
</div>
<div class="clear"></div>
</div>
Странно, мучался, конфижил, правил скрипт, а плагин принципиально выдавал «неправильный ключ», даже перезакатывал поверху все заново… Потом махнул рукой, снес его под чистую, почистил кэш, поставил заново — все работает, вроде как так и задумывалось… Снова подправил все моменты, которые меня интересовали — по-прежднему работает… Странно… ))
Одно смутило — нельзя юзать буквы в капче, тупо бело выводится, но, думаю, что это и сам доковыряю…
Спасибо за плагин!
Одно смутило — нельзя юзать буквы в капче, тупо бело выводится, но, думаю, что это и сам доковыряю…
Спасибо за плагин!
Комментарии (90)
RSS свернуть / развернуть