reCaptcha — хорошая защита от спама
Многие из вас видели эту капчу. Это не удивительно, ведь еe используют сейчас многие крупные ресурсы и движки. К примеру reCapcha используется при регистрации новых пользователей в Invision Power Board, livejournal и т.д. В общем не в последних конторах.
Как свидетельствуют копирайты в футере проект reCapcha развивается институтом Кагнеги а использовать ее можно полностью бесплатно, правда нужна регистрация в системе.

Что я могу сам сказать о рекапче?
Я использую ее в своем проекте при регистрации, а так же она по умолчанию встроена в мой форум на IPB. Могу сказать что за 2,5 месяца не было еще ни одной автоматической регистрации спамбота. Похоже пока OCR сервисам не по зубам рекапча.
Какие плюсы в использовании рекапчи?
- Постоянное развитие.
- Поддержка голосового произношения слова (английский).
- Если капча составлена так, что ее не распознает человеческий глаз, ее можно обновить без перезагрузки страницы. Это особенно мне нравится, потому что если вбил все регистрационные данные, а капчу не видно, ее можно обновить без потери введенных данных.
Вкратце так: на халяву мы получаем постоянно развивающееся, рабочее и простое решение по защите от роботов.
Как интегрировать в свой сайт/движок?
Отмечу сразу, что для многих CMS уже написаны плагины, позволяющие интегрировать reCapcha, список можно посмотреть тут, начиная с заголовка Application Plugins. Сейчас расскажу, как использовать библиотеку PHP в своих проектах и целях.
- Регаемся, входим в админку
- На странице MY SITES вбиваем список сайтов, привязанных к аккаунту. Вводить каждый сайт нужно затем, что ему присваются два ключа Private и Public, которые нам еще понадобятся.
- Скачиваем библиотеку для вашего интерпретатора. Я качаю для PHP, но у них там есть порт для многих других (Perl, Ruby, Python, ASP.NET и другие).
Итак, считаю что вы уже скачали библиотеку для PHP, создали файл index.php и открыли его для редактирования. Пошагово наши действия такие:
- Подключаем библиотеку:
require(‘recaptcha/recaptchalib.php’);
- Вводим свои public и private ключи:
$publickey = ‘ваш паблик ключ’;
$privatekey = ‘ваш приват ключ’; - Вызываем следующий код в том месте, где нужно вывести капчу:
recaptcha_get_html($publickey,$recapcha_error);
- Вызываем код проверки рекапчи:
$resp = recaptcha_check_answer($privatekey,$_SERVER["REMOTE_ADDR"],$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"])
У $resp есть переменная класса is_valid с типом bool. Она устанавливается в true, если капча введена верно и соответственно в false если неверно.
Полный код выглядит следующим образом:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Тест рекапчи</title>
</head>
<body>
<?
require('recaptcha/recaptchalib.php');
$publickey = 'ваш паблик код';
$privatekey = 'ваш приват код';
$recapcha_error = '';
if( isset($_POST['submit_capcha']) ){
$resp = recaptcha_check_answer($privatekey,$_SERVER["REMOTE_ADDR"],$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"]);
if( $resp->is_valid ){
echo '<font color="blue">Капча введена правильно</font>';
}
else{
echo '<font color="red">Капча введена неправильно</font>';
}
}
?>
<div>
<form method="post">
Введите капчу<br />
<?= recaptcha_get_html($publickey,$recapcha_error); ?><br />
<input type="submit" name="submit_capcha" value="Протестировать рекапчу" />
</form>
</div>
</body>
</html>
Посмотреть тестовый пример можно тут:
http://www.samborsky.com/sources/recapcha/
Спонсоры поста:
Дешевые часы breitling replica по низкой цене.
Оптимизация сайта, поисковое продвижение, от студии se7.ru
Хорошая и высокооплачеваемая работа в Одессе. Сайт бесплатных объявлений.


Ужаснейшая капча. Сколько раз она мне попадалась, ни разу с первого раза не удавалось набрать. Да и вообще любая капча – зло =)
Капча то хорошая, но многим юзерам не нравится… Не советовал бы старить… Сделать бы русский аналог, чтоб на русском вводить, тогда другой разговор
Dimox, а что лучше вместо нее юзать?
AngelOfFate, есть разные альтернативные способы, например, подстановка «левого» поля, проверка на поддержку куков и/или JavaScript. Ну или, на крайний случай, арифметическая капча – элементарное арифметическое действие произвести проще, чем пытаться разобраться, что же там за буквы понаписаны.
Меня тоже бесит эта капча, по сто раз приходится набивать, пока правильно не набьешь. Что она работает -это конечно хорошо. Кстати, Жень, насколько я помню ты там сам разработал капчу, видимо не долго она продержалась
Ненавижу эту капчу. Даже вроде правильно пишешь – а она всё рабно ошибку выбивает. Для проектов лучше такую не использовать – сразу портится настроение и теряется интерес
Да, если честно, заставили меня задуматься…
Быть может если ее убрать и регистраций будет побольше?!
Насчет проверки на Javascript – здравая мысль, потому что в основном роботы не эмулируют JS, т.к. процесс сабмита будет очень долгим…
Сделаю-ка я у себя на рыбалке регистрацию чисто на JavaScript, посмотрим что из этого выйдет.
Не в том дело. Просто я обновил свой IPB на последнюю версию, а там как раз по умолчанию встроена эта капча. Менять ничего не стал.
Ты раскручиваешь рыбалку?
Та пока в яндексе покупаю траф ч-з директ
Да, Женя, использование этой капчи наверняка сказывается на количестве регистраций. Так что экспериментируй =)
Ну если мне интересен ресурс, я все равно там зарегюсь независимо от капчи.
Как пользователю, мне эта капча нравится (хотя то, что надо вводить два слова, немного сбивает с толку сначала). Но попытался тут использовать её на одном проекте – не вышло, потому что внешний вид настраивается плохо, не удалось вписать в дизайн.
Зато когда нажать «капча звуком» очень прикольно получается. Поржать можно от души. Это по сути единственное достоинство этого творения.
Да, в интеграции данная капча – просто зло. Пытаюсь сейчас имплементировать вариант под ruby – никак не выводится «сама капча». Отсюда стало интересно (быть может проблема в этом) – а нафига ключи? Что они дают? Ибо у меня в html коде появляется кусочек кода + пустой ифрейм. Капча должна притти с их сервера? По тому ключу, что я получил у них?
Думаю эти ключи не играют какую-то роль.
Я например регистрировал ключ на rybalka.tv, а капча вполне себе появлялась на локалхосте, где я тестирую.
По руби ничем помочь не могу, я юзаю php библиотеку рекапчи.
а не могли бы вы по-подробнее рассписать установку рекапчи для джумлы.
————————-
Исходные данные:
сайт на джумле 1.0.13. скачал капчу 0.0.4 (там как раз есть для джумлы 1.0.13). скачал библиотеку для PHP.
————————-
требуется чтобы пользователи регистрировались на главной сайта через капчу.
спасибо
имеется ввиду что куда распихивать. ставить через админку или можно так – по фтп? для особо одаренных )))
Извиняюсь, но с джумлой не работал, подсказать ничего не могу, т.к. не знаю как у них там что устроено
спасибо.
разобрался. в архиве два зипа. один ввиде компонента, другой ввиде модуля. ставим сначала компонент, потом модуль. ставим станадртно – через админку джумлы. потом отключаем стандартный модуль логина:com-login и включаем рекапча. в настройках компонента reCaptcha – надо ввести ключи, которые надо получить на сайте reCaptcha.
вроде всё. по крайней мере работает
Как-то раз заказывал платных постеров для одного форума, так каждый третий потом жаловался что не может зарегистрироваться из-за капчи. Но со временем таких становилось всё меньше и меньше, видимо парни работают над читабельностью капча-текстов =)
Да, сиё творение и мне жудко не нравится
Но вот тут же нет никаких каптч! И спама особо не видно!