Обзор и использование reCaptcha
Для защиты Веб-сайтов в пике своей славы находится технология КАПТЧИ — это тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером. Основная идея теста: предложить пользователю такую задачу, которую легко решает человек, но которую невозможно (или крайне трудно) научить решать компьютер. (с) Wikipedia
В наиболее распространённом варианте CAPTCHA: от пользователя требуется ввести символы, как правило, изображённые на предлагаемом ему рисунке в искажённом виде, иногда с добавлением шума или полупрозрачности.
Не так уж давно появился вариант КАПТЧИ -> ReCaptcha.
Новый вариант использует два слова для ввода с возможностью прослушивания вводимого текста по-буквенно.
А самое главное, новая каптча использует как бы авторизацию на сервере сервиса.
Небольшой пример использования
1. Первое что вам нужно — зарегистрироватся в сервисе
2. Вам нужно будет ввести домен вашего сайта, чтобы получить ReCaptcha key
Вместо mysite.ru введите свой домен.
3. Получите Ключ
И такс, вы получили Public и Private keys. Обязательно их сохраните.
4. Внедрить в скрипт
Обычно каптчу внедряют в станицу, где нужно заполнять форму(для того, чтобы веб-форма была защищена от флуд-ботов, спамеров).
Итак, допустим у вас есть скрипт, который регистрирует нового пользователя.
Внедряется очень просто
<?php
if(isset($_POST[‘sub’])) // Обработка формы
{
require_once(‘recaptchalib.php’); // запускаем библиотеку reCaptcha
$privatekey = «6Ld6-QAAAAfgHxgVIJcwS45EIwEA4dP9KBE65m»; // Private Key
$resp = recaptcha_check_answer ($privatekey,
$_SERVER[«REMOTE_ADDR»],
$_POST[«recaptcha_challenge_field»],
$_POST[«recaptcha_response_field»]);
if (!$resp->is_valid) { // Проверка на правильность ввода
die («Введён неправельный код. Вернитесь назад и попробуйте ещё раз.» .
«(reCAPTCHA said: » . $resp->error . «) <br><a href=\»#\» onclick=\»history.back()\»>Назад</a>»);
$name = addslashes($_POST[‘name’]); // Обработка поля name
$password = addslashes($_POST[‘password’]); // Обработка поля password
$password = md5($password); // Обработка поля password
$query = mysql_query(«SELECT * FROM users WHERE name = ‘$name’ AND pass = ‘$password’ LIMIT 1»); // Примерный запрос
/////////////// И тут ваши действия
///////////
//……………………………
//…………………………….
}
else
{
// Вывод формы
echo ‘
<form method=»post» action=»»>
<label class=»description» for=»name»><font color=»#CCCCCC»>Имя </font></label>
<input id=»element_2″ style=»background-color:#DAE3E7″ name=»name» class=»element text medium» type=»text» maxlength=»25″ value=»»/>
<label class=»description» for=»password»><font color=»#CCCCCC»>Пароль </font></label>
<input id=»element_3″ style=»background-color:#DAE3E7″ name=»password» class=»element text medium» type=»text» maxlength=»30″ value=»»/>’;
/////// Начало вывода КАПТЧИ
require_once(‘recaptchalib.php’);
$publickey = «6Ld6-QAAAAAdsffy_FLxiX8YTpxd45CEgqZwV3BN»; // Public Key
echo recaptcha_get_html($publickey);
/////// Конец вывода КАПТЧИ
echo ‘<input type=»hidden» name=»sub» value=»1″ /><br />
<input id=»saveForm» class=»button_text» type=»submit» name=»submit» value=»Вход» /><br />’;
// Конец вывода формы
?>
Самую последнюю версию библиотеки reCaptcha можно скачать здесь -> http://code.google.com/p/recaptcha/downloads/list?q=label:phplib-Latest
Спасибо за внимание. (с) n3m0
[Y.P.C.]yla said,
20 января, 2009 в 2:13
Хороший обзорик!
В наше время только так нужно боротся с ботами…спамерами и т д и т п 🙂
+ дополнительно тренируешь зрение 😀
Мальвина said,
15 сентября, 2009 в 2:20
Хорошая стаья, хорошо изложена — умные мысли — редко навязчивые.