09-06-2018 12:02

Captcha PHP: пример скрипта

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

Конструкция PHP if else: скрытая логикаВам будет интересно:Конструкция PHP if else: скрытая логика

Определение

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

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

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

Как определить количество элементов в массиве PHP?Вам будет интересно:Как определить количество элементов в массиве PHP?

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

История

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

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

PHP

PHP sprintf: форматирование и обработка строкВам будет интересно:PHP sprintf: форматирование и обработка строк

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, которые также широко используются, просят пользователей идентифицировать подмножество картинок в большом наборе изображений. Например, пользователю может быть представлен набор иконок, и предлагается нажать на все те, в которых есть автомобили.

L2TP-соединение - что это такое? Как настроить L2TP-соединениеВам будет интересно:L2TP-соединение - что это такое? Как настроить L2TP-соединение

Другие типы 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 в качестве защиты от межсайтовой подделки запроса не рекомендуется, так как существуют более сильные контрмеры.



Источник