Простая капча для формы. Что делать, если не получается правильно ее ввести? Как открыть Captcha PHP: пример

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

Что это такое?

Кстати, а что такое капча? Представьте, что вы зашли на какой-нибудь популярный файлообменник. Чтобы скачать файл в бесплатном режиме, вам придется ввести в специальное поле некий набор символов (зачастую бессмысленных), который следует брать с рисунка напротив.

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

Для чего она нужна?

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

Да, были такие времена, когда о капче вообще никто не знал. Появилась она сравнительно недавно. Произошло это в тот же период, когда на просторах Рунета расплодилась масса ботов, при помощи которых предприимчивые граждане оставляли в комментариях объявления рекламного характера, бесплатно скачивали файлы и творили прочие безобразия.

Конечно, на многих ресурсах за порядком следили администраторы, но в большинстве сервисов для ведения блогов нагрузка на них оказалась такая, что они банально перестали справляться. Вот тогда пользователи и узнали о том, что такое капча! Знакомство оказалось достаточно неприятным.

Если говорить совсем точно, то сама технология первоначально была создана в 2000 году. Изначально она предназначалась только лишь для определения «человечности» вашего собеседника в интернете: тогда ни одна программа для капчи (для ее распознавания, точнее) просто не была создана.

В чем же ее недостаток?

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

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

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

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

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

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

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

Что же делать?

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

Простые варианты можно распознать при помощи небольшой утилиты Screenshot Reader, которая входит в состав программного пакета ABBYY FineReader. Но читает она только самые простые формы капчи, которые сможет без особого труда опознать любой нормальный пользователь. Кроме того, сам процесс не получится автоматизировать, так как для распознавания необходимо вручную выделять интересующий вас диапазон.

Ввод капчи

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

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

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

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

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

Покупаем «противоядие»

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

Особый интерес в этом ключе представляют разработки компании CMS Bitrix, которая распространяет действительно эффективные программы, которые справляются с капчей на большинстве популярных сайтов. Разработчики утверждают, что эффективность их творения находится в пределах 95 %. В зависимости от типа защиты, ее сложности и конкретного сайта, разработка методов ее защиты может обойтись вам в пару тысяч долларов, а то и больше.

Кроме того, на некоторых ресурсах есть настолько изощренная защита, что ее и человеку-то разгадать непросто!

Можно ли заработать на ее вводе?

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

На наш взгляд (быть может, довольно субъективный), заниматься этим делом не стоит. Вы потратите огромное количество нервов, сил и трафика. А оплата такого «легкого заработка» просто поражает: просидев целый день возле компьютера, с маниакальным упорством занимаясь вбиванием капчи, вы заработаете максимум пару долларов. А оно вам надо? Наверняка нет.

Универсальный выход

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

Как убрать капчу с вашего блога?

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

Сначала заходим в «Редактор» вашей странички. В левой колонке выбираете пункт «Настройки». В нем есть раздел «Сообщения и комментарии». В поле «Использовать проверку по слову» поставьте значение «нет», после чего капча при вводе сообщений требоваться не будет.

Что делать, если не получается правильно ее ввести?

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

Прежде всего, нужно успокоиться. Как правило, в правой части любой капчи есть изогнутая стрелка. Нажав на нее, вы обновите тот набор символов, который нужно ввести для доступа на сайт. Воспользовавшись ею, можно изменить совершенно нечитаемый набор. К сожалению, нечитаемость букв встречается очень часто. Так, порой совершенно неразличима разница между буквами "Q" и "G".

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

Вот что такое капча!

Captcha PHP представляет собой программу, используемую для проверки того, что человек, а не компьютер, вводит данные. Капчи обычно отображаются в конце онлайн-форм и просят пользователя ввести текст с искаженным изображением. Текст на изображении может маскироваться искаженным шрифтом, волновыми и зигзагообразными линиями и автоматическая программа распознавания не может его выявить. Некоторые Captcha PHP включают в себя функцию аудиального произношения. Тесты Captcha могут остановить 90% хакерских атак, заблокировав программное обеспечение робота и ограничив отправку онлайн-запросов.

Определение

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

Спецификация

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

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

История

Потребность в Captcha PHP родилась еще в 1997 году. В то время поисковая система AltaVista искала способ блокировать автоматическое размещение URL-адресов на платформе, которая искажала алгоритмы ранжирования поисковой системы. Чтобы решить эту проблему, Андрей Бродер, главный ученый AltaVista, разработал алгоритм, который случайно генерировал изображение печатного текста. Хотя компьютеры не могли распознать изображение, люди могли читать сообщение, содержащее изображение и отвечающее соответствующим образом. Бродер и его команда получили патент на эту технологию в апреле 2001 года.

В 2003 году Николас Хоппер, Мануэль Блум, Луис фон Ан из Университета Карнеги-Меллона и Джон Лэнгфорд из IBM разработали алгоритм и придумали термин Captcha. Имя означает абсолютно автоматизированный тест Тьюринга публичного применения для дифференциации людей машин.

PHP

PHP — это язык сценариев и интерпретатор, который находится в свободном доступе и используется в основном на веб-серверах Linux. PHP выполняется на сервере, а на клиенте запускается сопоставимая альтернатива JavaScript. Данный язык программирования является альтернативой технологии Microsoft Active Server Page (ASP). Как и в ASP, PHP-скрипт Captcha встраивается в веб-страницу вместе с HTML-кодом. Перед отправкой страницы пользователю веб-сервер вызывает PHP для интерпретации и выполнения операций, вызванных в скрипте.

HTML-странице, содержащей PHP-скрипт, обычно присваивается суффикс имени файла.php - «.php7» или «.phtml». PHP можно рассматривать как «динамические HTML-страницы», поскольку контент будет зависеть от результатов интерпретации сценария.

Язык бесплатный и используется по лицензии с открытым исходным кодом.

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

Как работает Captcha на PHP

Captcha — это своего рода Суть заключается в том, что конечным пользователям предлагается выполнить некоторые задачи, которые программный бот выполнить не сможет. Тесты часто связаны с изображениями JPEG или GIF, потому что, хотя боты и могут идентифицировать наличие изображения, читая исходный код, они не могут распознать содержание картинки. Поскольку некоторые изображения трудно интерпретировать, пользователям обычно предоставляется возможность запросить новый тест.

Классификация

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

Распознавание изображений Captcha в PHP, которые также широко используются, просят пользователей идентифицировать подмножество картинок в большом наборе изображений. Например, пользователю может быть представлен набор иконок, и предлагается нажать на все те, в которых есть автомобили.

Другие типы Captcha включают:

  • Math Captcha — требует от пользователя решения основной математической задачи, такой как добавление или вычитание двух чисел.
  • 3D Super Captcha — здесь пользователь должен идентифицировать изображение, отображаемое в 3D.
  • I"m Not a Robot — в этом типе капчи пользователь должен установить флажок.
  • Marketing — требует от пользователя ввода определенного слова или фразы, относящейся к бренду спонсора.
Обход капчи: обзор последних расширений

Пользователи могут использовать расширения из надстроек браузера, которые позволяют пользователям обходить ввод капчи. Популярные надстройки браузера включают AntiCapture, Captcha Be Gone и Rumola.

Автоматический плагин AntiCaptcha для Chrome и Firefox автоматически находит plugins captcha recaptcha recaptcha php на веб-странице и обрабатывает ее для пользователя. Приложение не бесплатное: на момент написания этой статьи стоимость услуги начинается с 0,70 доллара за 1000 изображений Captcha. Расширение Captcha Be Gone обнаруживает капчу на веб-страницах, обрабатывает ее и копирует результат в буфер обмена пользователя. На данный момент утилита доступна для браузеров Firefox, Chrome и Internet Explorer за подписку в размере 3,50 долларов США в месяц.

Приложение Rumola для Firefox, Chrome и Safari автоматически ищет Captcha на веб-страницах, которые посещает пользователь. В настоящее время стоимость составляет 0,95 $ для 50 изображений капчи или 1,95 $ для 150 решений. У данного разработчика также есть букмарклет JavaScript, который можно использовать для устройств, подключающихся к Интернету.

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

Как открыть Captcha PHP: пример

Представленный ниже код показывает, как создать простую графику Captcha со случайными строками и цифрами и как включить ее в HTML-форму для предотвращения автоматической подачи вредоносных скриптов. Также это поможет ответить на вопрос: как открыть plugins captcha recaptcha recaptcha php?

Следующий код необходимо сохранить как отдельный файл PHP (мы называем его Captcha /php). Этот файл создает PNG-изображение, содержащее серию из пяти цифр. Он также сохраняет эти цифры в переменной сеанса, чтобы другие скрипты могли знать, что такое правильный код, и проверить правильность ввода.

Пример Captcha PHP script

//google Captcha PHP PHP image Captcha

// Adapted for The Art of Web: www.the-art-of-web.com

// Please acknowledge use of this code by including this header.

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

Полученное в результате обработки скрипта (Captcha PHP ajax) изображение должно быть трудным для «роботов», но максимально простым для людей. При желании вы можете усложнить графику, добавив цвета или текстуры, либо используя разные шрифты и эффект вращения.

Альтернативные схемы

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

  • Компания Chew опубликовала свою работу на 7-й Международной конференции по информационной безопасности ISC"04, предложив три различные версии распознавания образов капчи, и подтвердила эту гипотезу с помощью пользовательских исследований.
  • Организация Datta опубликовала свою работу на конференции ACM Multimedia "05, под названием IMAGINATION, предлагая систематический способ распознавания изображений Captcha. Картинки искажаются таким образом, что современные подходы к распознаванию изображений (которые являются потенциальными технологиями атаки) не распознают их.
  • Инженеры ИТ-гиганта Microsoft (Джереми Элсон, Джон Р. Дузер, Джон Хауэлл и Джаред Саул) разработали распознавание изображений видов животных для ограничения доступа (ASIRRA), которые просят пользователей различать кошек и собак. У Microsoft была бета-версия этого решения для использования веб-сайтами. Тесты показали, что люди успешно распознавали изображения в 99,6% случаев за 30 секунд. Это решение было описано в документе 2007 года к материалам 14-й конференции ACM по безопасности компьютеров и коммуникаций (CCS).
В чем разница между Captcha и reCaptcha?

Captcha — это тест на проверку личности (обычно это размытые буквы, которые необходимо расшифровать), используемые многими сайтами для предотвращения спама.

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

В настоящее время reCaptcha является наиболее популярной реализацией.

Применение

Хотя капча не является безусловным средством проверки подлинности, его использование может быть очень эффективным в следующих случаях:

  • Перечисления (формы регистрации или сброса пароля часто уязвимы для атак злоумышленников — без Captcha хакер может получить действительные имена пользователей, номера телефонов или любую другую конфиденциальную информацию за короткое время).
  • Автоматическая отправка многих запросов GET/POST за короткое время, когда это нежелательно (например, получение SMS/MMS/электронной почты). В данном случае Captcha обеспечивает функцию ограничения скорости.
  • Автоматическое создание учетной записи, которая должна использоваться только людьми (например, создание учетных записей электронной почты, остановка спама).
  • Автоматическое размещение постов в блогах, форумах и вики-ресурсах.
  • Любые автоматические атаки, которые в массовом порядке получают или злоупотребляют конфиденциальной информацией из приложения.

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

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

Сразу же предупреждаю, что топик может быть интересен только начинающим разработчикам, так как по сути я изобретаю велосипед, но зато своими руками.

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

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

2. Генератор капчи должен быть четко ограничен в используемых символах
Наглядный пример - изображение в начале топика. Конечно, reCAPTCHA - чудесное изобретение, но порой она предлагает ввести символы, которые и в charmap найти сложно. Кстати, когда речь идет о капче с использованием кириллических символов - ни в коем случае генератор не должен использовать букву «ё». Лично я знаю много людей, у которых на ~ (тильда / ё) повешено какое-то действие в системе.

3. Капча должна быть стойкой к распознаванию
… но не в ущерб читаемости. Вообще, этот пункт - самый сложный во всей разработке. Необходимо найти золотую середину - капча сходу читается людьми и вообще (насколько возможно) не читается ботами. Так же необходимо учитывать специфику ресурса, на котором планируется использовать капчу, и его контингента. Если речь идет о, допустим, форуме читающих домохозяек за сорок, то на стойкость капчи можно плюнуть с высокой башни - никому он не упрется. Если речь идет о, например, имейджборде, то тут нужна капча а-ля вырвиглаз.

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

Итак, по порядку перечислим, что же мы можем использовать:

1. В изображении должно использоваться хотя бы несколько цветов. Желательно всегда разные


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

2. Должен присутствовать шум


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

3. Буквы должны находиться на небольшом расстоянии друг от друга


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

4. Размеры символов должны быть разными


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

5. Отвратительный шрифт


Очень полезный способ. Засечки, курсив, стилизация - отличные подводные камни для бота. Так же в сочетании с шумом в виде линий очень хорошо будет смотреться тонкий шрифт. Если абстрагироваться от первого правила генерации капчи, то можно использовать множество шрифтов сразу, к примеру свой шрифт для каждого символа.

6. Символы под случайным углом

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

7. Динамические искажения

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

Итак, что же мы сделаем:
- Контрастный фон, с шумом
- Линии за текстом, линии на тексте
- Текст в случайном положении
- Количество символов будет случайным, от 4 до 7
- Размер каждого символа будет случайным
- Цвет текста каждый раз будет случайным
- Символы будут слегка прикасаться
- Каждый символ будет под случайным небольшим углом

Разработка Определимся с целью:
- Генерация шума
- Генерация текста
- Форма с возможностью обновления капчи
- Обработчик введенных данных
По мере написания статьи понял, что искажения в данном случае абсолютно неуместны. Для тех, кому они все же нужны - в конце топика ссылка на урок по созданию искажений.Пишем форму Обновить капчу Введите капчу:
Тут все предельно ясно, но на всякий случай я откомментировал некоторые строчки. Кстати, обратите внимание, я не установил параметр maxlenght у поля ввода. В большинстве случаев, разработчики устанавливают этот параметр, указывая размер капчи. Во-первых это нехилая такая подсказка для бота, во-вторых у нас количество символов будет динамическим. Все, интерфейс мы написали, пора приступать к созданию скрипта генерацииПишем генератор кода капчи (random.php)
Тут все ограничивается только вашим воображением. Как-то я видел иной способ - выбиралась текущая минута, час, месяц, все это перемножалось, из этого выбирались 10 случайных символов, дважды извлекался MD5-хеш, из него извлекались 6 случайных символов и затем все это еще и перемешивалось. Кстати, обратите внимание на выбранные мною символы - я исключил такие как i, l, 1 и 0, o, c, из-за того, что они слишком похожи друг на друга, в некоторых ситуациях пользователь может ошибиться. Генератор я назвал random.php (далее он будет запрашиваться в других скриптах).Пишем генератор изображения (captcha.php)


Top