Captcha
ReCaptcha
NoCaptcha
...
Начало начал
Давным давно, когда в интернете еще не
было школьников, боты были еще слишком
глупы и гипертекстовый векторный FidoNet
правил балом, можно было жить не тужить.
Время шло, школьники подросли, боты
обучились и началось извечное
противостояние.
С чем боролись
● Накрутка голосований и опросов
● Фейковые учетки
● Реклама и прочий спам
● Нагрузка на сервера от «тяжелых» запросов
Как боролись
● Множество самописных генераторов «капч»
Как боролись
● Хитрые «собери-пазл», «реши пример» и
прочие «матан» капчи
Как боролись
● Горшочки с медом — Honeypots
невидимые пользователю поля будут заполнены ботом
● Time stamps
анализ времени нахождения на сайте в скорости заполнения
формы
● Прочие аналитики
полет мысли ничто не ограничивает, творим все что не
запрещено УК РФ
Как боролись
● Captcha от гигантов индустрии.
Так одним из известнейших стал ReCaptcha, купленный в 2009
году компанией Google.
Докажи что ты не робот — помоги распознать тексты книг
Google ReCaptcha
Плюсы ReCaptcha
● Простой API
● Возможность переопределения поведения, explicit render
● Есть готовые клиенты для валидации введенного значения
● Настройка тем и языка
<script type="text/javascript">
var RecaptchaOptions = {
theme : 'custom',
custom_theme_widget: 'recaptcha_widget',
lang: 'ru'
custom_translations : { instructions_visual : "А не робот ли ты?",
incorrect_try_again : "Где-то я тебя видел? Не в Футураме ла? Бендер?!",
refresh_btn : "Я не Бендер. Хочу попробовать еще раз"}
};
</script>
Минусы ReCaptcha
● Появились биржи распознавания капчи
Миллион индусов упорней, чем вам кажется
Минусы ReCaptcha
● Невозможность добавить более 1 рекапчи на
страницу (если быть честным, то можно, но
это особый вид магии и не всегда это
оправдано). Все это сильно усложняет
поведение и добавляет множетство вещей,
которые необходимо контролировать.
Минусы ReCaptcha
● Зачастую невозможно прочитать текст, что
сильно раздражает пользователей
ReCaptcha
● В 2013 году в ReCaptcha были внесены изменения,
результатом которых стала упрощенная капча. При редких
запросах из нескомпрометированных подсетей капча была
до неприличия простой
ReCaptcha 2.0
Анонсированная в декабре 2014 года ReCaptcha 2.0 была
призвана исправить существовавшие недостатки. И, что самое
важное, стать максимально простой для людей.
ReCaptcha 2.0
Когда капча не уверена что вы не робот,
она попросит выбрать котика.
В совсем запущенном случае будет
показана старая добрая капча со сканами
книг.
Что изменилось
● Теперь можно делать много экземпларов
капчи на 1 странице без лишних сложностей
● Изменился механизм верификации
● Добавилась статистика запросов NoCaptcha
● Улучшенная работа клиентского виджета
Пример использования (default)
<html>
<head>
<title>reCAPTCHA demo: Simple page</title>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
<form action="?" method="POST">
<div class="g-recaptcha" data-sitekey="your_site_key"></div>
<br/>
<input type="submit" value="Submit">
</form>
</body>
</html>
Как получить код валидации
- grecaptcha.getResponse()
- request.POST['g-recaptcha-response']
Как проверить код валидации
[POST] URL: https://www.google.com/recaptcha/api/siteverify
secret Required. The shared key between your site and ReCAPTCHA.
response Required. The user response token provided by the reCAPTCHA to the user and provided to your site on.
remoteip Optional. The user's IP address.
Ответ
{
"success": false,
"error-codes": [
"missing-input-response",
"missing-input-secret"
]
}
Пример использования (explicit)
<script type="text/javascript">
var onloadCallback = function() {
alert("grecaptcha is ready!");
};
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
Тут получим алерт при загрузке капчи
Пример использования (explicit)
<script type="text/javascript">
var onloadCallback = function() {
alert("grecaptcha is ready!");
};
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
Доступные параметры (api.js)
Onload callbackFn имя колбэк функции
Render explicit | onload Необязательны параметр. Указываем надо ли явно определять процедуру
отрисовки. По умолчанию рендериться будет первый найденный div c id='g-recaptcha'
hl Явное указание языка выджета. По умолчанию язык будет определяться
автоматически
Пример использования (несколько
виджетов)
Показать пример
Всякое разное
● Работа при отключенном JS
Вопросы?

NoCaptcha

  • 1.
  • 2.
    Начало начал Давным давно,когда в интернете еще не было школьников, боты были еще слишком глупы и гипертекстовый векторный FidoNet правил балом, можно было жить не тужить. Время шло, школьники подросли, боты обучились и началось извечное противостояние.
  • 3.
    С чем боролись ●Накрутка голосований и опросов ● Фейковые учетки ● Реклама и прочий спам ● Нагрузка на сервера от «тяжелых» запросов
  • 4.
    Как боролись ● Множествосамописных генераторов «капч»
  • 5.
    Как боролись ● Хитрые«собери-пазл», «реши пример» и прочие «матан» капчи
  • 6.
    Как боролись ● Горшочкис медом — Honeypots невидимые пользователю поля будут заполнены ботом ● Time stamps анализ времени нахождения на сайте в скорости заполнения формы ● Прочие аналитики полет мысли ничто не ограничивает, творим все что не запрещено УК РФ
  • 7.
    Как боролись ● Captchaот гигантов индустрии. Так одним из известнейших стал ReCaptcha, купленный в 2009 году компанией Google. Докажи что ты не робот — помоги распознать тексты книг
  • 8.
  • 9.
    Плюсы ReCaptcha ● ПростойAPI ● Возможность переопределения поведения, explicit render ● Есть готовые клиенты для валидации введенного значения ● Настройка тем и языка <script type="text/javascript"> var RecaptchaOptions = { theme : 'custom', custom_theme_widget: 'recaptcha_widget', lang: 'ru' custom_translations : { instructions_visual : "А не робот ли ты?", incorrect_try_again : "Где-то я тебя видел? Не в Футураме ла? Бендер?!", refresh_btn : "Я не Бендер. Хочу попробовать еще раз"} }; </script>
  • 10.
    Минусы ReCaptcha ● Появилисьбиржи распознавания капчи Миллион индусов упорней, чем вам кажется
  • 11.
    Минусы ReCaptcha ● Невозможностьдобавить более 1 рекапчи на страницу (если быть честным, то можно, но это особый вид магии и не всегда это оправдано). Все это сильно усложняет поведение и добавляет множетство вещей, которые необходимо контролировать.
  • 12.
    Минусы ReCaptcha ● Зачастуюневозможно прочитать текст, что сильно раздражает пользователей
  • 13.
    ReCaptcha ● В 2013году в ReCaptcha были внесены изменения, результатом которых стала упрощенная капча. При редких запросах из нескомпрометированных подсетей капча была до неприличия простой
  • 14.
    ReCaptcha 2.0 Анонсированная вдекабре 2014 года ReCaptcha 2.0 была призвана исправить существовавшие недостатки. И, что самое важное, стать максимально простой для людей.
  • 15.
    ReCaptcha 2.0 Когда капчане уверена что вы не робот, она попросит выбрать котика. В совсем запущенном случае будет показана старая добрая капча со сканами книг.
  • 16.
    Что изменилось ● Теперьможно делать много экземпларов капчи на 1 странице без лишних сложностей ● Изменился механизм верификации ● Добавилась статистика запросов NoCaptcha ● Улучшенная работа клиентского виджета
  • 17.
    Пример использования (default) <html> <head> <title>reCAPTCHAdemo: Simple page</title> <script src="https://www.google.com/recaptcha/api.js" async defer></script> </head> <body> <form action="?" method="POST"> <div class="g-recaptcha" data-sitekey="your_site_key"></div> <br/> <input type="submit" value="Submit"> </form> </body> </html> Как получить код валидации - grecaptcha.getResponse() - request.POST['g-recaptcha-response'] Как проверить код валидации [POST] URL: https://www.google.com/recaptcha/api/siteverify secret Required. The shared key between your site and ReCAPTCHA. response Required. The user response token provided by the reCAPTCHA to the user and provided to your site on. remoteip Optional. The user's IP address. Ответ { "success": false, "error-codes": [ "missing-input-response", "missing-input-secret" ] }
  • 18.
    Пример использования (explicit) <scripttype="text/javascript"> var onloadCallback = function() { alert("grecaptcha is ready!"); }; </script> <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script> Тут получим алерт при загрузке капчи
  • 19.
    Пример использования (explicit) <scripttype="text/javascript"> var onloadCallback = function() { alert("grecaptcha is ready!"); }; </script> <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script> Доступные параметры (api.js) Onload callbackFn имя колбэк функции Render explicit | onload Необязательны параметр. Указываем надо ли явно определять процедуру отрисовки. По умолчанию рендериться будет первый найденный div c id='g-recaptcha' hl Явное указание языка выджета. По умолчанию язык будет определяться автоматически
  • 20.
  • 21.
    Всякое разное ● Работапри отключенном JS
  • 22.