Рекапча гугл


К примеру у нас есть простая страница с формой:

<!DOCTYPE html>  <html lang="ru">  <head>   <meta charset="UTF-8">   <title>Добавляем reCAPTCHA от Google на сайт</title>  </head>    <body>     <form method="post">   <label for="name">Имя:</label>   <input name="name" required><br />     <label for="email">E-mail:</label>   <input name="email" type="email" required><br />     <input type="submit" value="Отправить" />   </form>    </body>  </html>  

Как работает reCAPTCHA?

Пример работы reCAPTCHA

Пользователь жмет на кнопку «Я не робот», если анализ Google уверен, что вы человек, то все хорошо, иначе появится вторая проверка, например ввод слова или выбор нескольких картинок одной тематики из массива изображений, пример:

Пример дополнительной проверки reCAPTCHA

или

Рекапча гугл

Так же на этот вопрос есть отличный ответ в виде видео от Google:


Удобно? Тогда приступим к интеграции на сайт.

Добавляем reCAPTCHA на сайт

Добавляем reCAPTCHA API key

Для начала необходимо добавить reCAPTCHA API key, для этого перейдите по ссылке: https://www.google.com/recaptcha/admin, и заполните поля: метка (1), домены (где будет использоваться reCAPTCHA) (2) и жмем на кнопку «Register» (3).

Форма добавления reCAPTCHA API key

После чего получим данные для добавления reCAPTCHA на сайт:

Пример данных reCAPTCHA API key

Добавляем reCAPTCHA в форму

На страницу добавляем js скрипт из поля 3, скрипт можно добавить перед закрывающемся тегом </head> или </body>


, далее в форму и добавляем блок с капчей из поля 4 (поля из второго скриншота):

<!DOCTYPE html>  <html lang="ru">    <head>   <meta charset="UTF-8">   <title>Добавляем reCAPTCHA от Google на сайт</title>  </head>    <body>     <form method="post">   <label for="name">Имя:</label>   <input name="name" required><br />   <label for="email">E-mail:</label>   <input name="email" type="email" required><br />   <div class="g-recaptcha" data-sitekey="6LeKaREUAAAAALB6Sgjp5XqHq0Kb_aLEn_KORz6u"></div>   <input type="submit" value="Отправить" />   </form>     <script src='https://www.google.com/recaptcha/api.js'></script>   </body>    </html>  

Где data-sitekey — значение из поля 1 (второй скриншот).

Верификация reCAPTCHA

После того как добавили блок reCAPTCHA в форму нам будет приходить постом 3 значения: name, email и g-recaptcha-response. Перед обработкой полученных данных необходимо валидировать name и email, а также отправить значение g-recaptcha-response Google для проверки.

Пропустим валидацию name и email и перейдем к g-recaptcha-response. Разработчики Google ReCAPTCHA уже сделали всю работу за нас по верификации капчи, поэтому переходим к проекту ReCAPTCHA на Github и скопируем файл recaptchalib.php: https://github.com/google/recaptcha/blob/1.0.0/php/recaptchalib.php.

Затем положим его в удобное место (я положу в корень) и подключаем перед верификацией капчи:

<?php  require_once "recaptchalib.php";  

Класс ReCaptchaResponse отправит содержимое g-recaptcha-response


и секретный ключ в Google, затем получит ответ и проверит, был ли он успешен:

<?php  require_once "recaptchalib.php";    //секретный ключ  $secret = "6LeKaREUAAAAAGgPekvD1djRejSXufWqghauFg7-";  //ответ  $response = null;  //проверка секретного ключа  $reCaptcha = new ReCaptcha($secret);    if (!empty($_POST)) {     if ($_POST["g-recaptcha-response"]) {   $response = $reCaptcha->verifyResponse(   $_SERVER["REMOTE_ADDR"],   $_POST["g-recaptcha-response"]   );   }     if ($response != null && $response->success) {   echo "Все хорошо.";   } else {   echo "Вы точно человек?";   }    }  

Итог

Теперь соберем все вместе:

Внешний вид:

Рекапча гугл

Дополнительно

Тема

Сменить цвет reCAPTCHA можно с помощью атрибута data-theme, который может принимать значение dark и light (по умолчанию):

Рекапча гугл


Рекапча гугл

Язык

По умолчанию язык в reCAPTCHA определяется по языку браузера, но можно указать язык явно, например, украинский:

задать русский язык

Дополнительные настройки: https://developers.google.com/recaptcha/docs/display#config

кодер.укр

Что такое reCAPTCHA

reCAPTCHA была создана на основе похожей системы под названием CAPTCHA, что расшифровывается как Completely Automated Public Turing test to tell Computers and Humans Apart — «полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей». CAPTCHA предлагает пользователю распознать текст, в деформированном виде представленный на картинке.

CAPTCHA начала применяться в 1997 г. одновременно двумя командами разработчиков — в поисковом движке AltaVista, чтобы воспрепятствовать добавлению URL-адресов ботами, и в фаерволе компании Sanctum. В 2007 г. сотрудниками Университета Карнеги — Меллона была создана reCAPTCHA, также ориентированная на распознавание различных объектов на изображениях, и приобретенная Google в сентябре 2009 г.

os-chrome.ru

Добавление reCAPTCHA на сайт


1. Перейдите по адресу https://www.google.com/recaptcha/admin#list на страницу Гугла с инструкцией по установке reCAPTCHA на сайт.
инструкция по установке reCAPTCHA на сайт
2. Тут, в первой части инструкции, вы получите два ключа – простой и непростой (секретный), они вам скоро понадобятся.

Идем дальше. Если с первой частью по интеграции на стороне клиента все понятно, то интеграция на стороне сервера поставила меня в тупик и заставила остановиться. Спасибо Диме ktonanovenkogo.ru за предложенный выход из ситуации. Для установки reCAPTCHA на сайт предлагается использовать плагин «no captcha recaptcha», специально для этого написанный, и кстати не единственный, но наиболее для нас подходящий.

3. Скачать no captcha recaptcha можно со страницы https://wordpress.org/plugins/no-captcha-recaptcha/.

После установки и активации плагина, в вашей админке появится новая ссылка «No CAPTCHA reCAPTCHA». Перейдите по ней в настройки плагина.
no captcha recaptcha4. Вставьте простой и секретный ключи в соответствующие поля.


5. В этом блоке настроек активацией соответствующих опций можно встроить капчу в форму входа в админ-панель сайта, в форму регистрации и в форму комментирования соответственно.

6. В последнем блоке , если хотите, выберите тему, язык и введите текст, который будет видеть отправивший комментарий посетитель, если забудет доказать свою причастность к человеческому происхождению.

Стоит отметить то, что теперь все спам-комментарии, отсеянные reCAPTCHA, будут автоматически попадать в корзину.

И еще, reCAPTCHA не убережет от ручного спама. Для борьбы с этой напастью рекомендую использовать Akismet. Обе эти защиты прекрасно дополняют друг друга.

Я вас поздравляю с окончательной победой над спамом на своем сайте!

wordpress-book.ru

Методы снижения спам-нагрузки и почему именно reCAPTCHA?

Как вы наверное знаете, спам бывает ручной и автоматический. От первого можно защититься только включением обязательной модерации всех входящих сообщений перед их публикацией на блоге — тогда наверняка никакая «редиска» не прорвется.

Рекапча гугл

Но ручной спам, как правило, представляет из себя хиленький ручеек по сравнению с полноводной рекой автоспама. Последний может генериться, например, Хрумером в просто фантастических объемах. Лично меня больше раздражает даже не то, что в сутки приходит несколько сотен спамных комментов в мою адмнинку WordPress, а то, что они бывают чудовищно длинными и устаешь их прокручивать до кнопки «Удалить». В общем, проблема сия реальна и тем более актуальна, чем популярнее будет ваш блог.


С ручным спамом бороться нет смысла (из-за обреченности этой борьбы и из-за его несущественного объема), но вот с автоспамом нужно что-то делать. Тут как бы есть два основных подхода:

  1. Фильтровать уже добавленные в базу WordPress комменты на предмет спам/неспам и распихивать их по соотвествующим папочкам. К сожалению, плагины, работающие по такому принципу, выдают много брака и просто так очищать папку «Спам» без просмотра ее содержимого не получится, если вы не хотите потерять десятки действительно ценных комментариев отправленных активными читателями вашего блога.
  2. Прикрутить к форме добавления комментария дополнительную проверку на то, кто именно оставляет это сообщение — живой человек или бот. Задача по выявлению этого различия называется тестом Тьюринга и решается в подавляющем большинстве случаев с помощью так называемой капчи (образовано от CAPTCHA, которое является аббревиатурой от набора умных слов). Основной проблемой этого метода борьбы со спамом является то, что вы напрягаете комментаторов разгадыванием «ребуса» (капчи), что может отбить у него вообще какое-либо желание продолжать пытаться оставить сообщение.

Однако, капчи, как уже говорил, бывают довольно простыми. Гугл сделал серьезный шаг в этом направлении и теперь его новая reCAPTCHA просто образец простоты и изящества для подавляющего большинства пользователей зашедших на ваш сайт (правда, малому числу из них может все же быть предложено ввести символы с картинки, если у алгоритма возникнут сомнения в его человечности).

Вот так реКапча от Гугла будет выглядеть для 99.9% посетителей вашего сайта:

Рекапча гугл

Ну и вот так, в случае возникновения форс-мажора (если алгоритм после проведения десятка тестов на человечность все же засумлевается):

Рекапча гугл

О стойкости этой защиты можно судить по тому, что на сервисах по распознаванию капчи (Ru-капче или Анти-капче) за рекапчку берут в два раза больше денежек. Очень говорящий показатель.

Ну, как бы выбор сделан — надо реализовывать.

Регистрация сайта в reCAPTCHA и установка ее на свой блог

Для начала нужно зайти на официальную страницу reCAPTCHA и добавить там свой сайт, чтобы в обмен на эту любезность получить два длиннющих ключа (один простой, а второй секретный). Естественно, что заходить туда уместно будет из того браузера, где вы авторизованы в Google (входите в свой аккаунт).

Регистрация представляет из себя просто как указание названия и доменного имени вашего сайта, где эту саму капчу вы планируете использовать:


Рекапча гугл

После этого вы попадете в админку сервиса reCAPTCHA для вашего сайта (имеет смысл, наверное, добавить ее в закладки браузера). Со временем там будет отображаться статистика по работе данной капчи, ну, а пока самое важное, что мы отсюда можем почерпнуть — это как раз те самые ключи, без которых «Я не робот» работать не будет:

Рекапча гугл

Чуть ниже приведена инструкция по установке. В области «Интеграция на стороне клиента» все понятно, но простой установки приведенного кода в указанные места не достаточно. Капча отображаться будет, но спам фильтроваться не будет. В области же «Интеграция на стороне сервера» мне вообще ничего не понятно. Туповат я для этого.

Посему было принято решение использовать плагин для интеграции reCAPTCHA в WordPress, благо, что вариантов таких плагинов достаточно много (читайте где брать плагины для Вордпресс). Правда, штуки три из них у меня не заработали (капча в области добавления комментариев не появлялась). После нескольких неудачных попыток пришлось обратиться за решением к умным людям, где и был замечен и в последствии успешно установлен плагин с замысловатым названием (типа масло не маслянное) — No CAPTCHA reCAPTCHA.

ktonanovenkogo.ru

Что такое капча

Капча (англ. captcha) — аббревиатура от «Completely Automatic Public Turing Test to Tell Computers and Humans Apart» (полностью автоматический тест Тьюринга для отличния компьютеров от людей). По сути, это защита от заполнения и отправки любых форм ботами и спамерами в автоматическом режиме, будь то запрос в поисковой системе или регистрация в каком-либо сервисе, отправка комментария под статьёй или заполнение анкеты на сайте. Как правило, представляет собой картинку с со случайным текстом, цифрами, буквами, значение которой нужно записать в специальную форму.

Эффект рассчитан на то, что боты картинку не распознают, а человек — сможет. Соответственно, спамеры в автоматическом режиме и боты проверку не пройдут, и спам тоже.

Виды капчи, какая она бывает

Как было сказано выше, как правило, капча — это картинка с цифрами и буквами. Однако, это не единственная её форма, ведь всё зависит от вашей фантазии.
Самая простая капча представляет собой чекбокс, куда надо поставить галочку в подтверждение о том, что вы — не робот.

Бывают такие, что приходится выбирать картинки по какому-то признаку. Например, подобная схема реализована на сайте МТС в разделе отправки бесплатных сообщений SMS.
Собственно, видов превеликое множество. Как же выбрать то, что нужно? Лично я рекомендую пользоваться самописными вариантами, ибо тут всё будет зависеть от фантазии вашей или ваших программистов. Если капча получится оригинальной, то такую вещь обойти спамерам будет намного сложнее. Но, так как это довольно накладно либо по времени, либо по деньгам, советую воспользоваться сервисом Google reCAPTCHA

Google ReCaptcha — как установить и настроить

Google reCAPTCHA — это сервис, который предоставляет бесплатную капчу для защиты различных форм ввода данных на сайте от спамеров и ботов.

Google Recaptcha

На изображении вы видите промо Google reCAPTCHA Invisible — нового вида рекапчи (невидимая), который только проходит бета-тестирование. Соответственно, пока что пользоваться им я не рекомендую, лучше отдать предпочтение классической проверенной рекапче.

  1. Нужно авторизоваться или завести новый аккаунт. Если у Вас уже есть аккаунт от почты Gmail, можно авторизоваться с его помощью.

  2. После авторизации регистрируем сайт, получаем ключи доступа.

    • Название можно вводить любое — пригодится в дальнейшем, чтобы не запутаться, если связок ключей будет много
    • Домены вводить по одному в строке. Если ввели домен example.com, то ключи будут работать и для всех его поддоменов

      Если их прописать неверно, увидите ошибку Error: Invalid domain key или Ошибка: неверный домен ключа
      Ошибка: неверный домен ключа

    • Владельцы — введите туда свой email от аккаунта Google (Gmail почту). На эти адреса можно настроить уведомления о работе reCAPTCHA
    • Расширенные настройки — здесь можно настроить уровень параноидальности капчи, а также имя домена, на котором она располагается
      Расширенные настройки Google Recaptcha
  3. Далее, добавление reCAPTCHA на сайт. У вас будет в наличии 2 ключа, публичный и секретный

    Они понадобятся в дальнейшем:

    • Публичный ключ будет использоваться в HTML формы отправки сообщений, или там, где мы хотим использовать капчу
    • Секретный ключ нужно держать в тайне, он используется для связи сайта с Google Recaptcha
  4. Нужно вывести следующий код в теле страницы, желательно перед закрывающим тегом </head>:
  5. В том месте, где нужно вывести капчу, вставляем:

    где значение атрибута data-sitekey должно совпадать с публичным ключом, в нашем случае, это 6LcPh-ASAAAAAA_6GlKkDitO2LPvPEza0lRm2GRE

  6. Теперь надо оформить обработку отправки данных на сервер Гугла и верификации ответа капчи. Звучит сложно, на деле всё проще. Нам понадобится небольшая PHP библиотека с GitHub

    • Если Вы умеете пользоваться Composer, просто вбиваете в консоль или командную строку следующую команду, которая скачает всё, что нужно:

    • Можно просто скачать библиотеку архивом zip, распаковать архив, взять оттуда содержимое каталога /src/ и вручную разместить его в нужное место в Вашем проекте, например, в каталоге /recaptcha/.

    Я приведу пример с последним вариантом.

  7. Допустим, у нас есть форма

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous"> <title>Google reCAPTCHA</title> <style> form {width: 100%; max-width: 500px; margin: 1em;} </style> <script src='https://www.google.com/recaptcha/api.js'></script> </head> <body> <div class="container"> <div class="row"> <form action="" method="POST"> <?php if ( $success ) { ?> <div class="alert alert-success" role="alert"> <?= $success ?> </div> <?php } ?> <?php if ( $fail ) { ?> <div class="alert alert-danger" role="alert"> <?= $fail ?> </div> <?php } ?> <div class="form-group row"> <label for="exampleInputEmail1" class="col-sm-2 col-xs-12 col-form-label">Email</label> <div class="col-sm-10 col-xs-12"> <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Введите email"> </div> </div> <div class="form-group row"> <label for="exampleInputPassword1" class="col-sm-2 col-xs-12 col-form-label">Пароль</label> <div class="col-sm-10 col-xs-12"> <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Введите пароль"> </div> </div> <div class="form-group row"> <label class="col-sm-2 col-xs-12 col-form-label">Капча</label> <div class="col-sm-10 col-xs-12"> <div class="g-recaptcha" data-sitekey="6LcPh-ASAAAAAA_6GlKkDitO2LPvPEza0lRm2GRE"></div> </div> </div> <div class="form-group row"> <label class="col-2 col-form-label"></label> <div class="col-sm-10 col-xs-12"> <button type="submit" class="btn btn-primary">Отправить</button> </div> </div> </form> </div> </div> </body> </html> 

    В ней мы разместили нашу рекапчу над кнопкой отправки формы. Теперь нужно подключить обработчик. Над этой формой разместим следующий код:

    <?php /** * Recaptcha * https://sheensay.ru/?p=205 * **************************** */ require_once 'recaptcha/autoload.php'; $secret = '6LcPh-ASAAAAAHZTpPumSP7ZLCET3saE4WnDfOth'; // Вставляем сюда секретный ключ $remoteIp = $_SERVER['REMOTE_ADDR']; $gRecaptchaResponse = $_POST['g-recaptcha-response']; $success = $fail = ''; if ( !empty( $_POST ) ) { $recaptcha = new ReCaptchaReCaptcha( $secret ); $resp = $recaptcha -> verify( $gRecaptchaResponse, $remoteIp ); if ( $resp -> isSuccess() ) { // Проверка успешно пройдена $success = 'Форма успешно отправлена, спасибо!'; } else { // Ошибка $fail = 'Ошибка отправки формы: '; $errors = $resp -> getErrorCodes(); foreach ( $errors as $error ) { $fail .= $error . '; '; } } } ?> 

    Здесь мы подключили PHP библиотеку для обработки рекапчи, а также верифицировали капчу на сервере Google.

    Я подготовил специальную страницу для проверки рекапчи: http://recaptcha.sheensay.ru — код полностью копирует источник выше.
    В случае, если форма будет успешно отправлена, вы увидите соответствующее сообщение:

    Если же, капча не пройдёт проверку, вы увидите сообщение об ошибке:

Всё, теперь каждая форма комментариев защищена капчей.

Иерархия файлов в подобном проекте:
Иерархия файлов и каталогов
index.php в корне — тут располагается основной код, рядом располагается каталог recaptcha — в нём все файлы из PHP-библиотеки

Приведу полный код страницы http://recaptcha.sheensay.ru. Вы можете поменять логику вывода ошибок на свою:

<?php  /**   * Recaptcha   * https://sheensay.ru/?p=205   * **************************** */  require_once 'recaptcha/autoload.php';    $secret = '6LcPh-ASAAAAAHZTpPumSP7ZLCET3saE4WnDfOth'; // Вставляем сюда секретный ключ  $remoteIp = $_SERVER['REMOTE_ADDR'];  $gRecaptchaResponse = $_POST['g-recaptcha-response'];  $success = $fail = '';    if ( !empty( $_POST ) ) {  	$recaptcha = new ReCaptchaReCaptcha( $secret );  	$resp = $recaptcha -> verify( $gRecaptchaResponse, $remoteIp );  	if ( $resp -> isSuccess() ) {  		// Проверка успешно пройдена  		$success = 'Форма успешно отправлена, спасибо!';  	} else {  		// Ошибка  		$fail = 'Ошибка отправки формы: ';  		$errors = $resp -> getErrorCodes();  		foreach ( $errors as $error ) {  			$fail .= $error . '; ';  		}		  	}  }  ?>  <!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">  		<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">  		<title>Google reCAPTCHA</title>  		<style>  			form {width: 100%; max-width: 500px; margin: 1em;}  		</style>  		<script src='https://www.google.com/recaptcha/api.js'></script>  	</head>  	<body>  		<div class="container">  			<div class="row">  				<form action="" method="POST">  					<?php if ( $success ) { ?>  						<div class="alert alert-success" role="alert">  							<?= $success ?>  						</div>  					<?php } ?>  					<?php if ( $fail ) { ?>  						<div class="alert alert-danger" role="alert">  							<?= $fail ?>  						</div>  					<?php } ?>					  					<div class="form-group row">  						<label for="exampleInputEmail1" class="col-sm-2 col-xs-12 col-form-label">Email</label>  						<div class="col-sm-10 col-xs-12">  							<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Введите email">  						</div>  					</div>  					<div class="form-group row">  						<label for="exampleInputPassword1" class="col-sm-2 col-xs-12 col-form-label">Пароль</label>  						<div class="col-sm-10 col-xs-12">  							<input type="password" class="form-control" id="exampleInputPassword1" placeholder="Введите пароль">  						</div>  					</div>  					<div class="form-group row">  						<label class="col-sm-2 col-xs-12 col-form-label">Капча</label>  						<div class="col-sm-10 col-xs-12">  							<div class="g-recaptcha" data-sitekey="6LcPh-ASAAAAAA_6GlKkDitO2LPvPEza0lRm2GRE"></div>  						</div>  					</div>  					<div class="form-group row">  						<label class="col-2 col-form-label"></label>  						<div class="col-sm-10 col-xs-12">  							<button type="submit" class="btn btn-primary">Отправить</button>  						</div>  					</div>  				</form>  			</div>  		</div>  	</body>  </html>  

Как установить Google Recaptcha в WordPress

Чтобы установить Google Recaptcha в WordPress, самым удобным будет сделать это через плагин Google Captcha (reCAPTCHA) by BestWebSoft

Устанавливаете плагин, в поля вводите ключи для домена, которые мы приготовили по инструкции выше — и готово.

Ключи нужно получать тут: https://www.google.com/recaptcha/admin

Далее, переходите к настройкам плагина, вводите публичный и секретный ключи в соответствующие поля:

Как защитить комментарии от спама без капчи

Если морока с собственными комментариями ни к чему, трудно установить капчу, она Вам почему-то не нравится или просто нет такой возможности, то можно воспользоваться готовой системой комментирования Disqus. Как выглядит Disqus, можно увидеть под этой статьёй, на этом сайте интегрирована и используется эта система комментирования. Из плюсов — очень удобная система модерирования, отсутствие спама как такового, приятный внешний вид.

sheensay.ru

Новая reCaptcha от Google

От автора: создавая сайты или различные веб-приложения, на страницах которых в публичном доступе присутствует форма отправки некоторых данных, всегда необходимо заботиться о защите от нежелательных сообщений, то есть спама. В данный момент есть достаточно много всевозможных способов блокирования спам сообщений, но самый простой и надежный – это, конечно же, каптча, которая известна практически всем пользователям интернета. При этом, каптчи бывают различных видов графические, текстовые, математические, вопрос-ответ и т.д. Но в уроке Новая reCaptcha от Google мы поговорим о каптче от сервиса Google, под названием reCaptcha, которая реализует достаточно хороший барьер от спам сообщений на Вашем сайте. К тому же недавно вышла новая версия данной каптчи, поэтому давайте посмотрим, как с ней работать.

Установка каптчи reCaptcha

Итак, давайте перейдем на официальный сайт каптчи reCaptcha, http://google.com/recaptcha. При, этом хотел бы заметить, что Вам потребуется учетная запись сервиса Google, поэтому зарегистрируйтесь, если у Вас нет учетной записи и выполните авторизацию.

Рекапча гугл

Далее, переходим по ссылке Get reCaptcha и регистрируем каптчу для сайта, на котором она будет использоваться.

Рекапча гугл

При этом заполняем следующие поля:

Затем для завершения регистрации кликаем по кнопке Регистрация. После этого сервис Google сгенерирует два ключа, которые необходимы для работы каптчи:

Рекапча гугл

Для отображения каптчи, необходимо подключить библиотеку reCapthca на странице где она должна быть отображена:

Затем в месте, где должна отображаться каптча, добавляем следующий блок:

При этом в атрибуте data-sitekey блока div должен храниться публичный ключ. После этого переходим в браузер и обновляем тестовую страницу.

Рекапча гугл

Теперь reCaptcha отображается на тестовой странице, но при этом защита от спама еще не завершена, так как данную форму можно отправить и не активируя чекбокс каптчи. А значит, необходимо на стороне сервера ,в скрипте обработчике формы, осуществить проверку, на правильность заполнения каптчи.

Интеграция каптчи на стороне сервера

Первым делом давайте посмотрим, какие данные мы получим в скрипте обработчике после успешной активации чекбокса каптчи. Для этого, в скрипте обработчике формы, распечатаем на экран данные суперглобального массива POST.

При этом на экране мы увидим следующее.

Рекапча гугл

То есть в суперглобальном массиве POST в ячейке g-recaptcha-response, содержится код, который возвращает сервис Google после активации чекбокса каптчи, если же чекбокс не активирован то данная ячейка будет пуста. При этом код представляет собой определенную последовательность символов, которую нам ни как не прочитать. Поэтому далее необходимо отправить POST запрос по следующему адресу: https://www.google.com/recaptcha/api/siteverify

И отправить следующие параметры:

Для отправки запроса, по указанному запросу используем curl – соединение:

Выполнив запрос, сервис Google вернет результат в виде строки формата JSON, в которой содержится объект, в структуре которого содержится свойство success. Если значение данного свойства равно TRUE, значит каптча — активирована верно и сообщение отправил пользователь, а не спам-робот. В противном же случае сообщение отправил спам-робот.

На этом данный урок завершен. Всего Вам доброго и удачного кодирования.

Рекапча гугл

webformyself.com

Давайте начнем с того, что это вообще за слово такое — «капча». Это вольная транскрипция английской аббревиатуры captcha — Completely Automated Public Turing test to tell Computers and Humans Apart («полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей»).

В основе капчи, как и в основе оригинального теста Тьюринга, лежит простая идея: капча представляет собой тест, который может пройти человек и не может — компьютер. Чаще всего капча показывает пользователю искаженный текст, который нужно ввести повторно, чтобы получить доступ к чему-нибудь.

Капча — это важный инструмент, который позволяет легко и быстро защитить сайты от регистрирующихся ботов, блог-посты от бесчисленных спамерских комментов и так далее. Без капчи умельцы смогли бы, к примеру, накручивать количество голосов в голосованиях или писать кучу рекламных комментариев с помощью программных роботов.

Первые версии капчи были довольно простыми, и компьютеры быстро научились их обходить. Это повлекло за собой соревнование хакеров и разработчиков тестов captcha. Стоило преступникам одолеть одну капчу, как выпускалась новая, более совершенная версия.

В какой-то момент в поединок вмешалась компания Google и представила свою reCAPTCHA. Сейчас разработка Google считается неофициальным стандартом в мире капчи. Она используется самой Google, Facebook и на многих других сайтах для защиты от спама и других пакостей. В общем-то, reCAPTCHA — это самый популярный вид капчи на свете.

К сожалению, оказалось, что разработка Google не так хорошо защищена, как многие думали.

Специалисты по безопасности из Колумбийского университета недавно обнаружили несколько уязвимостей в технологии reCAPTCHA, которые позволяют хакерам обойти ограничения и инициировать крупномасштабные атаки на сайты.

Исследователи утверждают, что им удалось создать систему, которая успешно решает задачи капчи в 70% случаев, причем в среднем у нее на это уходит около 19 секунд. Для Facebook этот показатель даже выше — успешными были 83,5% попыток, видимо, потому, что Facebook использует для теста картинки с более высоким разрешением.

Для создания этой системы использовались методы машинного обучения. Обход reCAPTCHA происходил следующим образом: вначале программа получала файлы cookie и имитировала поведение живого человека. Она путешествовала по разным открытым сайтам с произвольными интервалами, соблюдала суточный режим посещения Интернета и всячески притворялась обычным пользователем. Делалось это неспроста: в логике Google прописано, что, если пользователь похож на робота, ему нужно предложить решить задачку посложнее.

Продемонстрировав «примерное поведение», программа запрашивала доступ, например, для комментирования, смотрела на капчу и отправлялась искать картинки из нее с помощью обратного поиска Google Images. Того, который на вход получает картинки, а на выходе выдает слова.

Забавно, что система для поиска изображений от Google помогла сломать стандарт reCAPTCHA, сделанный той же Google. Текстовые описания к картинкам очень сильно облегчили программе задачу. Кроме того, часто встречающиеся картинки специалисты Колумбийского университета внесли в программу вручную.

Тем не менее эта программа может работать и без Интернета. «Наша полностью офлайновая система обхода капчи работает быстро и точно. Она сравнима с профессиональными решениями». — Исследователи особенно гордятся простотой и эффективностью своей разработки.

Прежде чем опубликовать результаты работы, специалисты Колумбийского университета связались с Google и Facebook и сообщили обеим компаниям о найденных уязвимостях. По их словам, Google быстро отреагировала, попытавшись усовершенствовать reCAPTCHA, в то время как Facebook пока не приняла никаких мер.

Исследователи считают, что хакеры готовы платить по $2 за 1000 решенных задачек капчи, так что программка легко могла бы зарабатывать им $100 в день. А если бы они запустили сразу много атак одновременно или применили другие, дополнительные технологии, то ежедневная прибыль была бы еще больше. Поскольку злоумышленники за воздух не платят, вы вполне можете представить масштабы потенциального бедствия.

Очевидно, что в мире кибербезопасности есть еще много нерешенных проблем, но такие исследования помогают многим компаниям, включая Google, занять более активную позицию и пересмотреть меры безопасности. Google уже заинтересовалась возможностью сделать свою защиту надежнее, и хочется верить, что и другие сайты не проигнорируют это исследование.

www.kaspersky.ru

Описание проблемы

  В начале июля несколько клиентов, независимо друг от друга, пожаловалась нам о том что часть токенов для прохождения ReCaptcha, которые они получают от нас, не принимается сайтами, где проходится капча. Мы провели ряд экспериментов и выявили, что при верификации ответа на ReCaptcha, Google.com может вернуть вот такую ошибку:

{"success":false,"error-codes":["incorrect-captcha-sol"]}

 

  Этой проблеме подвержен не только наш сервис решения капч RuCaptcha.com, но и обычные люди, которые проходят рекапчу на каком-либо сайте, но сайт не принимает ответ на капчу от них.

В API ReCaptcha нет описания данной ошибки. Доподлинно нам не известны её причины, но некоторые зависимости мы смогли найти.

 

От чего зависит получение incorrect-captcha-sol

Появление incorrect-captcha-sol, по нашим наблюдениям, происходит по двум факторам:

1) Очень плохой IP
У Google, видимо, есть рейтинг для каждого IP-адреса. Если Вы решаете ReCaptcha без ошибок и не более 50 капч в сутки, то этот IP будет считаться хорошим.
Если Вы делаете что либо из этого списка:

  • совершаете много ошибок при решении

  • открываете капчу но не прорешиваете её до конца

  • решаете больше двух капч в минуту

То Ваш IP либо банится вообще, либо начинает получать такие токены, которые при дальнейшей проверке получают incorrect-captcha-sol

2) Плохие cookie
Помимо рейтинга IP, у Google есть рейтинг пользователей. Каждому, кто заходил на google.com или на страницу с установленной ReCaptcha, присваиваются свои cookie. Google анализирует Ваши действия в сети и оценивает насколько Вы похожи на живого человека или на робота. Если пользователь с одним набором cookie целый день решает капчи, даже если это делается с разных IP, то это, скорее всего, робот и такой пользователь будет решать капчи до зелёной галочки, но при дальнейшей проверке его ответа Google будет возвращать
{"success":false,"error-codes":["incorrect-captcha-sol"]}
Самое обидной в этом то, что при авторизации в гугловом почтовике gmail.com, Google проассоциирует Вас с Вашими прошлыми действиями и, если хоть один раз в прошлом посчитал Вас роботом, то теперь у Вас в 3 из 4 случаев не будет приниматься решение ReCaptcha.
 

Как RuCaptcha борется с incorrect-captcha-sol

 Для снижения количества “плохих” токенов  в ответах на капчи заказчиков, мы регулярно чистим куки в приложении работников, а также следим за качеством IP-адресов работников. Про это расскажем чуть подробнее.

 Да, некоторая часть наших работников имеет “очень плохие” IP-адреса, решая с которых ReCaptcha они получают токены, которые при последующей верификации получают incorrect-captcha-sol. Для борьбы с этим, мы раз в час выдаём тестовую ReCaptcha для каждого уникального IP-адреса и верифицируем ответ на неё в google.com. Если мы получили  incorrect-captcha-sol, то мы перестаём выдавать капчи для решения с этого IP и данный пользователь может решать капчи только через прокси (прокси, в свою очередь, также регулярно проверяются).

 Таким образом мы снижаем процент “плохих” ответов до 1-3%. К сожалению, прошли те времена, когда мы с гордостью говорили, что все 100% ответов на ReCaptcha от нашего сервиса верные.

 

Возвраты за плохие решения

С июля мы включили приём reportbad на ReCaptcha. Поэтому для сокращения издержек на капчу, Вы можете настроить автоматическое уведомление нас о том, что полученный от нас токен не прошёл верификацию, как это сделать описано у нас в APIReportbad.

Каждый час мы собираем статистику по жалобам на работников и возвращаем средства за те капчи, которые были разгаданы "плохим" работником.

 

Похоже, гугл считает мой IPкуку плохим. Я нигде не могу пройти капчу, что мне делать?

Да, множество простых людей столкнулись с проблемой, что они не могут пройти авторизациюрегистрацию на сайтах, где установлена ReCaptcha. Что с этим делать мы расскажем в следующей новости. Следите за обновлениями на нашем блоге!

rucaptcha.com


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.