Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Обзор и использование reCaptcha (https://forum.antichat.xyz/showthread.php?t=59371)

n3m0 20.01.2008 22:19

Обзор и использование reCaptcha
 
Для защиты Веб-сайтов в пике своей славы находится технология КАПТЧИ - это тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером. Основная идея теста: предложить пользователю такую задачу, которую легко решает человек, но которую невозможно (или крайне трудно) научить решать компьютер. (с) Wikipedia

В наиболее распространённом варианте CAPTCHA: от пользователя требуется ввести символы, как правило,изображённые на предлагаемом ему рисунке в искажённом виде, иногда с добавлением шума или полупрозрачности.

http://n3m0.wordpress.com/files/2008/01/captcha.jpg

Не так уж давно появился вариант КАПТЧИ -> ReCaptcha.

http://n3m0.wordpress.com/files/2008/01/captchanew.gif

Новый вариант использует два слова для ввода с возможностью прослушивания вводимого текста по-буквенно.

А самое главное, новая каптча использует как бы авторизацию на сервере сервиса.

Небольшой пример использования

1. Первое что вам нужно - зарегистрироватся в сервисе

2. Вам нужно будет ввести домен вашего сайта, чтобы получить ReCaptcha key

http://n3m0.wordpress.com/files/2008....thumbnail.gif
Вместо mysite.ru введите свой домен.

3. Получить Ключ

http://n3m0.wordpress.com/files/2008....thumbnail.gif


И такс, вы получили Public и Private keys. Обязательно их сохраните.

4. Внедрить в скрипт

Обычно каптчу внедряют в станицу, где нужно заполнять форму(для того, чтобы веб-форма была защищена от флуд-ботов, спамеров).

Итак, допустим у вас есть скрипт, который производит авторизацию на сайте.

Внедряется очень просто

PHP код:

<?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

Это не статья, а очень маленьки обзор. не судите строго
Спасибо за внимание. (с) n3m0


Время: 02:26