Как работает этот флажок recaptcha и как я могу его использовать?
Я недавно зарегистрировался на сайте oneplusone https://account.oneplus.net/sign-up, и заметил этот флажок recaptcha

Как это работает, и как я могу использовать его на своих сайтах? Гораздо лучше, чем эти загадочные слова / цифры:)
на сайте recaptcha не упоминается ни один новый метод recaptcha... https://www.google.com/recaptcha/intro/index.html
5 ответов:
это бета-API для reCAPTCHA. Я собираю это из источника их JS API:https://www.google.com/recaptcha/api.js ссылка на "API2". И я также нашел это:http://jaswsinc.com/recaptcha-ads/ по-видимому, они сделали приглашенную бета-версию своего "no CAPTCHA reCAPTCHA".... Вы, вероятно, не сможете заставить его работать на вашем сайте, пока. Я не могу найти никакой информации о выборе бета-версии, но если вы ищете "No CAPTCHA reCAPTCHA beta" , вы можете увидеть ряд людей, которые упомянули получение электронной почты от Google для них присоединиться.
Если вы найдете место, чтобы попасть в бету, поделитесь, пожалуйста! В противном случае, похоже, что публичный релиз состоится в 2015 году...
эта запись не отвечает на исходный вопрос, однако она помогает реализовать аналогичное решение.
как сказал @IanM, флажок recaptcha находится в бета-фазе, и его нельзя использовать без приглашения.ВАЖНОЕ РЕДАКТИРОВАНИЕ Google представил новый reCAPTCHA
- блог Google Online Security: вы робот? Представляем "No CAPTCHA reCAPTCHA"
- Google reCAPTCHA: Представляем новую рекапчу!
это капча на основе JavaScript.
поскольку большинство спам-ботов не выполняют JavaScript и не могут определить корреляцию между отображаемым текстом и DOM или требуемыми действиями, они не могут нажать на флажок.
обратите внимание, что нет никакого флажка вообще, это просто элемент div с некоторым стилем CSS. Спам-боты пытаются заполнить форму входными элементами, но в ней нет входа КАПЧА. Флажок-это просто еще один div (класс css).
когда вы нажимаете на поле, запрос ajax уведомляет сервер о том, что div был нажат, и сервер хранит эту информацию во временном хранилище (отмечает токен: этот токен был активирован человеком). Когда вы отправляете форму, скрытое поле отправляет маркер, который был активирован, а затем, когда сервер проверяет информацию о форме, он распознает, что маркер был активирован. Если токен не активирован, то форма будут признаны недействительными.
шаги в маркированных точках:
- сгенерируйте уникальный идентификатор и добавьте его в форму со скрытым вводом
- отобразить флажок на сайте (без использования
<input>элемент, возможно, с использованием<div>) и добавить к нему ранее сгенерированный идентификатор (вы можете использовать html5data-*атрибуты)- когда пользователь нажимает на флажок, отправьте запрос ajax на сервер и проверьте CAPTCHA, если это так допустимо отметить его как
in use. (Показать результат-идентификатор ОК / не ОК-пользователю)- когда пользователь отправляет форму, данные формы содержит идентификатор. Проверьте его еще раз, он должен существовать и он должен быть в
in useгосударство.- если все проверки пройдены, данные формы готовы к использованию / process
вы можете привязать идентификатор к сеансу пользователя, IP-адресу и/или использовать ограничения по времени для улучшения безопасность.
Примечание этот вид капчи работает только тогда, когда JavaScript включен!
Примечание (edit 1) Как заявил @crazypotato, есть некоторые инструменты автоматизации, которые могут выполнять JavaScript, эти инструменты также способны отправлять правильный запрос AJAX и запускать событие Click на флажке div.
Примечание (edit 2) Обратите внимание, что скрипт, написанный специально для одного сайта или для взлома одного типа капчи, получит рано или поздно это пройдет. Нет никакой окончательной защиты, вы можете только заставить ботов (или их разработчиков) работать сложнее.
Примечание (edit 3) шаги и описание в этом ответе содержат только некоторую базовую информацию об этом типе капчи, вам всегда нужно добавлять дополнительные проверки и шаги безопасности, чтобы сделать его более безопасным. Например, Google noCaptcha систематически запускает стандартную reCaptcha после 3 "div кликов".
вот мой код работает без проблем в PHP:
Клиентской Стороне:
<div class="g-recaptcha" data-sitekey="PUBLIC_KEY"></div>Сервер:
if (isset($_POST['g-recaptcha-response'])) { $captcha = $_POST['g-recaptcha-response']; $privatekey = "SECRET_KEY"; $url = 'https://www.google.com/recaptcha/api/siteverify'; $data = array( 'secret' => $privatekey, 'response' => $captcha, 'remoteip' => $_SERVER['REMOTE_ADDR'] ); $curlConfig = array( CURLOPT_URL => $url, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => $data ); $ch = curl_init(); curl_setopt_array($ch, $curlConfig); $response = curl_exec($ch); curl_close($ch); } $jsonResponse = json_decode($response); if ($jsonResponse->success == "true") doSomething(); else doSomeOtherThing();:)
Я пришел сюда в моих поисках, не увидел ответа, и поэтому я продолжал искать.
после моего поиска это окно все еще было открыто, поэтому я обновляю этот пост своими выводами.
здесь вы можете узнать об reCAPTCHA:
http://scraping.pro/no-captcha-recaptcha-challenge/
В основном, однако, вы добавляете это на свою веб-страницу:
<script src="https://www.google.com/recaptcha/api.js" >; <form method="post"> <div class="g-recaptcha" data-sitekey="[site key issued by google]"></div> <input value="submit" type="submit" /> </form>у вас reCAPTCHA ключи на этот сайт Google:
https://www.google.com/recaptcha/intro/index.html
после того, как у вас есть ключи, используя ссылку выше, вы можете углубиться в кодирование этого, используя следующую информацию Google:
https://developers.google.com/recaptcha/
Примечание:
из документации Google:
скрипт должен быть загружен с использованием протокола HTTPS и может быть включено из любой точки на странице без ограничений.
вот пример того, как я заставил его работать:
<html> <head> <title>Contact</title> <script src="https://www.google.com/recaptcha/api.js" async defer></script> <script> var onloadCallback = function () { grecaptcha.render('dvCaptcha', { 'sitekey': '<%=ReCaptcha_Key %>', 'callback': function (response) { $.ajax({ type: "POST", url: "CS.aspx/VerifyCaptcha", data: "{response: '" + response + "'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (r) { var captchaResponse = jQuery.parseJSON(r.d); if (captchaResponse.success) { $("[id*=txtCaptcha]").val(captchaResponse.success); $("[id*=lblAlarm]").hide(); } else { $("[id*=txtCaptcha]").val(""); $("[id*=lblAlarm]").show(); var error = captchaResponse["error-codes"][0]; $("[id*=lblAlarm]").html("RECaptcha error. " + error); } } }); } }); }; </script> </head> <body> <form action="?" method="POST"> <div id="dvCaptcha" class="g-recaptcha" data-sitekey="[site key issued by google]"></div> <br /> <asp:Button ID="btnSubmit" runat="Server" Text="Send" OnClick="btnSubmit_Click" /> <asp:Label ID="lblAlarm" runat="server" ForeColor="Red"></asp:Label> </form> </body> </html>Если вам нужно проверить в ASP.NET код позади, просто убедитесь, что элемент управления "G-recaptcha-response" заполнен:
protected static string ReCaptcha_Key, ReCaptcha_Secret; protected void btnSubmit_Click(object sender, EventArgs e) { if (!String.IsNullOrEmpty(Request.Form["g-recaptcha-response"])) { // other code } else { lblAlarm.Text = "reCAPTCHA failed."; } }надеюсь, некоторые из вас сочтут его полезным.
спасибо всем за Ваш вклад в эту тему, это здорово видеть так много людей, заинтересованных в новом инструменте recaptcha.
Я не смог найти его реализацию .net, поэтому построил простой элемент управления веб-формами, который вы можете найти здесь https://github.com/pnmcosta/recaptchav2dotnet
Comments