Как отключить капчу в браузере

Обновлено: 08.07.2024

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

Это была первая успешная попытка установить «фейс-контроль» для каждого посетителя сайта. Сетевые боты только начали появляться, но разработчики подготовились с ними сражаться. Бот-системы могли перегружать сайты, делая их недоступными для живых людей. Так, например, на форуме без капчи в начале нулевых можно было автоматически зарегистрировать десятки тысяч фейков и заспамить форум рекламой.

Для борьбы с такими ситуациями в американском Университете Карнеги-Меллона придумали скрипт, который требовал при доступе к сайту ввести символы с трудноразличимой картинки. Для пользователя ребус был несложный: буквы, раскиданные по изображению в хаотичном порядке и искаженные помехами, легко считывались человеком. Зато компьютерные системы распознавания текста терялись. Такой простейший барьер позволил значительно снизить нагрузку на популярные сайты, а также защитить многие порталы от фейковых регистраций и комментариев.

Как CAPTCHA стала полезной

Когда «капчу» стали использовать чересчур часто, сообщество задумалось о более полезном применении технологии. В 2007 году появилась reCAPTCHA, где вместо абстрактных картинок пользователям показывали нераспознанные компьютером слова из сканов архивных выпусков газеты The New York Times.

Аудитория теперь не расшифровывала тарабарщину, а помогала оцифровывать бумажную прессу XX века. Подтвердил, что ты человек, а заодно добавил слово.

Вскоре технологию купила Google и использовала ее для оцифровки книг.

В день пользователи reCAPTCHA помогали распознать сотню миллионов слов.

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

В самой новой версии reCAPTCHA человеку вообще не нужно напрягаться, достаточно поставить галочку напротив отметки «Я не робот» — алгоритм анализирует движения курсора (бот пойдет по прямому кратчайшему пути) и IP-адрес. До недавних пор reCAPTCHA работала крайне эффективно и почти незаметно для пользователей.

Однажды что-то пошло не так

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

Вслед за Google проверка пользователя всплыла и на других сайтах. Российский интернет наполнился жалобами на операторов связи, Google и даже Роскомнадзор — пользователей раздражало, что сайты при каждом посещении начали требовать подтверждения человеческой природы.

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

Согласно статистике, почти половина трафика в интернете – это боты. Различные программы и вирусы посещают сайты, портят статистику, а в некоторых случаях и наносят ущерб площадкам. Есть боты для накрутки ссылок, комментариев и многого другого, поэтому почти на каждом сайте есть капча.

Как отключить капчу? Актуальный вопрос, ведь людям уже надоело разгадывать символы с картинок.

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


Как отключить капчу в Адвего Плагиатус и других программах?

Любой софт, выполняющий многочисленные запросы в разные системы, относится к разряду ботов. Адвего Плагиатус – это программа для проверки текстов на уникальность.

Через неё подаются запросы в поисковые системы, а если их слишком много, появляется капча. Это защита от автоматизированных систем, которая есть и на многих других сайтах.

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

На примере Адвего Плагиатус, давайте рассмотрим, как отключить капчу. Заходим на специальный сайт Rucaptcha, где зарабатывают новички. Сначала нужно пополнить баланс, вносите 50 рублей, этого хватит надолго, если вы не активно пользуетесь ботами.

Затем переходите на вкладку API вебмастеру, чтобы получить специальный ключ:


Он указывается не только в Плагиатусе, но и в любых других программах с поддержкой «Анти-капчи». Теперь заходим в настройки программы Адвего:


В самом низу доступен выбор сервиса для автоматической проверки капчи и там же находится поле для ввода полученного captcha KEY :


Декапчер существенно экономит время, но если вы часто проверяете тексты, придется постоянно закидывать деньги для оплаты исполнителям. В последнее время появляется вплоть до 10 капч при проверке одного текста на 3-4 тысячи символов.

Капча Вконтакте, в других социальных сетях, чатах, да где угодно. Если используется программа с поддержкой сервисов ввода капчи, можно не тратить на это время.

Как отключить капчу в Google и Яндексе?

Есть ещё один метод избавиться от надоедливого разгадывания символов. Он подходит не только для поисковых систем, его применяют вообще для всех сайтов. Способ сложный, придется использовать прокси или заказывать у провайдера интернета динамический IP адрес.

Как системы определяют ботов? Они отслеживают действия с одних и тех же IP адресов, если слишком часто совершаются одни и те же действия, начинается проверка, т.е. необходимо вводить капчу. Понимаете, зачем вам динамический IP или прокси? Чтобы постоянно его менять!

В настройках подключения (или программы с прокси Proxy Switcher) необходимо выставить автоматическую смену адреса с минимальным интервалом времени. Пускай адрес меняется каждую секунду, программа за это время успевает выполнить множество действий, но до капчи дело не доходит.

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

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

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


image

Amazon’s CAPTCHA fallback

КАПЧА (от CAPTCHA англ. – полностью автоматизированный и общедоступный тест Тьюринга для различения компьютеров и людей) задумана как врата, которые пропускают людей и отсеивают роботов (программ). Волнистые линии и слова сейчас уже не так распространены –их заменила вторая версия реКАПЧИ от Google. Эта капча выдает вам зеленую галочку, если ваш «коэффициент человечности» оценивается как достаточно высокий.

Если же вы не дотянули до заданного порога «человечности», то реКАПЧА прибегает к использованию подобной паззлу картинки, которая на удивление эффективна скорее в том, чтобы еще сильнее действовать на нервы, по сравнению с расшифровкой пары слов.


image

При том, что людей КАПЧИ раздражают, их можно было бы и потерпеть, если бы они хотя бы выполняли свою работу, однако, зачастую гораздо проще автоматизировать их распознавание, чем постоянно доказывать, что вы человек.

Как работает 2Captcha

2Captcha решает много разных типов капчи. Для взаимодействия с 2Captcha используются два адреса: на in.php присылается задача и в ответ Вы получаете captcha_id, на res.php вы по captcha_id получаете ответ, когда он будет готов.

2Captcha решает капчи в нескольких различных стилях с помощью двух, по большей части одних и тех же, конечных точек обработки запросов. Первый запрос передает данные, необходимые для решения капчи, и возвращает ID запроса. В случае капчи на основе изображения, данные будут изображением самой капчи, закодированным в 64base.


image

После получения ID запроса, вам нужно будет повторно отправлять его на сервер 2капчи, пока решение не будет готово.


image

image

С Recaptcha V2 история немного другая. Вы по-прежнему имеете дело с двухступенчатым процессом, что и представленный выше, но отправляете другие данные. Теперь вам нужно отправлять публичный ключ рекапчи (reCAPTCHA sitekey), который можно найти среди атрибутов элемента-контейнера капчи, независимо от того, был ли загружен


image

Для капч, основанных на изображениях, результат доступен почти мгновенно. Для реКАПЧ версии 2 может потребоваться от 15 до 30 секунд.

Автоматизация через Puppeteer

Прежде чем беспокоиться о капче, нужно разобраться со всем прочим, но прежде чем мы сможем это сделать, нужно определиться с нашими инструментами. 3 причины, по которым в данном посте мы будем использовать Google’s Chrome:

  1. В нем все очень легко автоматизируется через Puppeteer API.
  2. На нем можно работать как в headless-режиме, так и с графическим интерфейсом, что очень удобно и практично.
  3. Это самый распространенный в мире браузер, поэтому все имеющиеся на сайтах приемы анти-автоматизации имеют меньший шанс срабатывания (например, блокировка Selenium или PhantomJS)

Использование Puppeteer

Необязательно устанавливать хром, если не хочется, в Puppeteer есть все необходимое, в том числе Chromium. Но можете использовать и локально установленный Chrome, решать вам.

Убедитесь, что все настроено, устроив предварительный тест. Для этого упражнения мы будем автоматизировать страницу регистрации Reddit, просто потому что это была первая страница с рекапчей, которая мне попалась.

В этом коде мы указываем два свойства конфигурации при запуске: headless: false, чтобы видеть то, что мы делаем, и defaultViewport: null, чтобы учесть неприятный визуальный глитч, при котором область просмотра не заполняет окно. Ни тот, ни другой не важны для работы браузера в headless-режиме, просто с ними удобней видеть и, что самое важное, делать скриншоты. Например, такой:


image

Это было просто! Теперь мы готовы перейти к следующему шагу – автоматизировать регистрацию так, будто капчи никогда и не было. Вот где возможность включать/ выключать headless-режим будет полезна, ведь мы можем управлять браузером от лица человека, когда нужно. Сначала следует понять, как получить доступ к элементам на странице, которые нужно поменять. Запустите браузер и просмотрите открытую страницу через инструменты разработчика Google Chrome (горячая клавиша – F12). Далее, найдите текстовые поля, которые нужно будет изменить. (горячие клавиши: ⌘+Shift+C на Mac и Ctrl+Shift+C на Windows) В случае с Reddit, нам нужно получить прямой доступ к полю ввода логина, двум полям ввода пароля и кнопке. Электронная почта необязательна, так что можем ее проигнорировать. Печать в текстовых полях через API библиотеки Puppeteer почти до смешного проста: вы просто передаете селектор, который идентифицирует элемент, и желаемую строку с помощью метода .type().

Производить операции с кнопкой так же удобно, разве что у кнопки на странице Reddit нет связанного с ней идентификатора, так что нам нужен более сложный селектор. Если вы не знакомы с селекторами CSS, то для краткого ознакомления посмотрите Mozilla Developer Network.

Вот и всё! Протестируйте скрипт, чтобы удостовериться, что отправка логина работает. Из-за КАПЧИ, конечно, ничего не получится, но зато мы можем протестировать работу хуков.


image

Подождите-ка! Мы ведь даже не видим капчу, и консоль JavaScript жалуется на ошибки. Что здесь происходит? Во время автоматизации веб-страниц, помимо капч, есть множество других препятствий, которые могут встать у вас на пути. И одна из них – настолько высокая скорость выполнения операций, что страница ломается. Когда браузеры автоматизированы, они работают во много-много раз быстрее, чем на то способен обычный человек, и зачастую это приводит к выполнению кода в таком порядке, в каком разработчики его не тестировали (это называется состоянием гонки или неопределённость параллелизма).

После добавления этой опции мы видим, что капча снова работает. Ради забавного эксперимента, можно попробовать пройти капчу прямо сейчас и посмотреть что будет. Поскольку мы используем вариант Chromium с настройками по умолчанию, который запускается библиотекой Puppeteer, и мы управляем им через средства автоматизации, то реКАПЧА будет изо всех сил пытаться доказать, что мы не человек. Вам, вероятно, придется пройти несколько уровней проверки, даже если вы разберетесь со всеми картинками. Когда я тестировал это, мне пришлось пройти через 10 различных повторений, прежде чем я получил зеленую галочку.

К счастью, все это можно сделать намного легче.

Настройка 2Captcha

2Captcha требует API ключ, который выдается при регистрации. Вам также потребуется какое-то количество средств, потому что, не всё в жизни бесплатно. И просто ради смеха, конечно же, вам понадобиться пройти КАПЧУ.

После того как вы сделали этот запрос и получили обратно идентификатор запроса, вам нужно запросить URL «res.php», используя ваши ключ API и идентификатор запроса, чтобы получить ответ.

Для reCaptcha V2 время нахождения решения может различаться – минимум 15 секунд, максимум – 45. Ниже показан пример механизма опроса, но в этот раз простого запроса по URL, который может быть интегрирован в ваше приложение так, как вам будет удобно.

Как только у вас есть данные ответа, вам нужно вставить результат в скрытое текстовое поле g-recaptcha-response в форме регистрации Reddit. Это не так просто, как использование метода .type() библиотеки Puppeteer, так как элемент невидим и не может получить фокус ввода. Можно сделать его видимым и затем использовать .type(), или же использовать JavaScript, чтобы внедрить значение на страницу. Для добавления JavaScript на страницу, при использовании Puppeteer, у нас есть метод .evaluate(), который принимает либо функцию, либо строку (при передаче функции она просто преобразуется в строку с помощью метода .toString()), и запускает ее в контексте страницы.

После внедрения этого значения у нас все готово для завершения регистрации. Это действительно так просто.

Полный скрипт доступен ниже, если вам захочется поэкспериментировать с Puppeteer и/или 2Captcha.

Что вы теперь можете сделать?

Этот пост был написан ради двух вещей:

1. Показать вам, насколько капчи нехорошая вещь

2. Показать вам, что капчам нет необходимости блокировать вас

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

Стандартная капча — бесполезная, ботами она проходится «на раз», а пользователям создает проблемы.

Оптимальное решение это использовать Google reCAPTCHA v2 или v3. Обе версии Google reCAPTCHA — отличный вариант. Это лучшее, что сейчас доступно на рынке из понятных и надежных решений к тому же бесплатных.

Основная проблема у обеих версий — при подключении значительно снижаются баллы по PageSpeed Insight на 20-30.

Пример reCAPTCHA v2 — требует угадывать картинки



Пример reCAPTCHA v3 — не требует от пользователя действий, в фоне анализирует его поведение


Важный для меня момент — не создавать проблемы реальным пользователям, т.к. я сам не большой любитель угадывать транспортные средства в reCAPTCHA v2, поэтому мой выбор v3.

Итак две проблемы Google reCAPTCHA v3, которые необходимо решить:

  • висящий логотип в нижнем правом углу;
  • потеря 20-30 баллов по Google PageSpeed Insight.

В лицензионном соглашении Google допускает убрать логотип, скрыв его через CSS.


Взамен под каждой формой написать «Защита от спама reCAPTCHA Конфиденциальность и Условия использования» со ссылками на соответствующие страницы Google.



Потеря баллов по Google PageSpeed Insight

При подключении javascript-файла от reCAPTCHA v3, сильно снижаются баллы по Google PageSpeed Insight. Для меня это было критично. Думаю, что это связано с анализом поведения пользователей (подобное снижение происходит при использовании вебвизора в Яндекс.Метрике).

На хорошо оптимизированных ресурсах можно потерять 20-30 баллов. Поэтому использовать её на отдельных страницах, где скорость не важна (например, контактов) можно и без модификаций. Для использования на всём сайте (например, для защиты сквозной формы авторизации или подписки на рассылку) желательно сделать модификацию.

Я придумал вариант инициализировать reCAPTCHA v3 по клику на поля формы. По умолчанию javascript-файл от reCAPTCHA v3 не загружаю, и только если пользователь поставил курсор на одно из полей формы выполняю его загрузку. Скорее всего данный метод снижает точность определения реальных пользователей, но проблем не возникало. Для моих задач данной точности хватает.

Данную методику начал применять сначала на веб-формах 1С-Битрикс, далее для сквозных форм авторизации и подписки на рассылку на сайтах без Битрикса.

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

Использование Google reCAPTCHA v3 в веб-формах 1С-Битрикс

1. Форму вызываем стандартным компонентом bitrix:form и делаем 2 дополнения:

  • Заменяем кнопку button type=submit на обычный button type=button
  • добавляем hidden поле name=g_recaptcha_response


2. Добавляем в javascript-файл сайта или компонента инициализацию reCAPTCHA при клике по полям формы (в этом примере я предполагаю, что вы используете jQuery):


3. Добавляем отслеживание клика по кнопке button в форме. Далее внутри, используем пример описанный в документации Google. Он заполняет поле g_recaptcha_response, которое мы будет использовать на последнем шаге для валидации пользователя.


4. Отслеживаем event onBeforeResultAdd в init.php

Перед отправкой результатов формы делаем обращение на сервер Google с вашим <PRIVATE_KEY>, и значением из hidden поля g_recaptcha_response из формы.

В ответ получаем баллы данного пользователя:

  • 1 это точно человек
  • 0 точно робот
  • Больше 0.5 можно считать человеком

В заключение

Данную методику можно использовать на любых сайтах и формах вне зависимости от CMS. Я привёл общие методики работы, которые можно применять в своём проекте.

Подобным образом можно поступить и с Google reCAPTCHA v2, инициализировать по клику на форме и просить пользователя установить галочку «Я не робот» и отгадать картинки, если потребуется. В данном случае это также сэкономит баллы по PageSpeed Insight и даст пользователю инструмент (выбирать картинки), чтобы доказать, что он не робот. Но как я уже говорил выше для меня самое важное, это не создавать пользователю преград.

Читайте также: