Варианты реализации CAPTCHA и способы ее защиты от автораспознавания
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0-9
CAPTCHA – полностью автоматизированный публичный тест Тьюринга (от английского Completely Automated Public Turing test to tell Computers and Humans Apart). Является торговой маркой Университета Карнеги-Меллона. Его сотрудники разработали программный тест, позволяющий определить, человеком или компьютером является пользователь.
Как термин используется с 2000 года. В Рунете часто употребляется транскрипция «капча» – универсальный, отфильтровывающий заполнение ботом полей формы ввода тест. Его цель – предложить простую для пользователя, но сложную для решения компьютером задачу. При раскрутке сайта CAPTCHA используется для защиты ресурса от спама в комментариях, автоматической регистрации и т.д.
Реализация
Встречаются следующие варианты капчи:
- графические. Пользователь должен ввести число, текст или другие символы, изображенные на картинке в искаженной форме, с добавлением полупрозрачности или шума;
- звуковые. Основываются на распознавании речи. Нередко используются для пользователей с нарушением зрения;
- Например, из терминов «ключевое слово», «табуретка», «мета-тег» и «HTTP» необходимо выбрать слово, не имеющее отношения к поисковой оптимизации сайта;
- образные. Пользователь должен распознать образ объекта;
- видео капчи. Символы и фон изображения находятся в движении.
Защита от автораспознавания капчи
Для эффективного продвижения сайта оптимизатор принимает превентивные меры для предотвращения распознавания капчи ботом.
- Уязвимости. Если CAPTCHA вызывается скриптом вида `img scr=»/captcha.php?code=5555″`, бот считает URL и введет ответ 5555.
- Угадывание. В случае небольшого числа вариантов ответа бот попытается угадать правильный. К примеру, если задача поставлена – из 10 изображений отметить птиц, то существует всего 210 = 1024 ответа. Это означает, что один автоматический запрос из 1024 пройдет капчу.
- Автоматическое распознавание. Разработаны программы, например, PWNtcha, которые распознают конкретные реализации капчи. Многие из них с вероятностью в 99% могут обойти «слабую» CAPTCHA, если в изображении используется фиксированное положение элементов, шрифт, размытия по Гауссу, символы легко отделены друг от друга или от фона (посредством цветового ключа), отсутствуют искажения и т.д.
Существуют и другие способы пройти капчу, не распознавая изображение:
- бот повторно использует идентификаторы сессии;
- восстанавливает изображенные символы по информации, которая содержится на странице;
- собирает базу данных под различные символы капчи, выдаваемые генератором псевдослучайных чисел.
Другие термины на букву «C»
CMSCookieCopylancerCPACPCCPLCPMCPOCPSCPVCRMCS YazzleCSSCTR, CTB, CTI, VTR
Все термины SEO-Википедии
Теги термина
Веб-разработкаВнутренняя оптимизация
(Рейтинг: 5, Голосов: 6) |
Находи клиентов. Быстрее!
Работаем по будням с 9:30 до 18:30. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 10:30.
Приложи файл или ТЗ
Нажимая кнопку, ты разрешаешь обработку персональных данных и соглашаешься с политикой конфиденциальности.
Работаем по будням с 9:30 до 18:30. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 10:30.
Нажимая кнопку, ты разрешаешь обработку персональных данных и соглашаешься с политикой конфиденциальности.
наверх
Captcha PHP: пример скрипта — RUUD
Содержание статьи:
- Определение
- Спецификация
- История
- PHP
- Как работает Captcha на PHP
- Классификация
- Обход капчи: обзор последних расширений
- Как открыть Captcha PHP: пример
- Альтернативные схемы
- В чем разница между Captcha и reCaptcha
- Применение
Captcha PHP представляет собой программу, используемую для проверки того, что человек, а не компьютер, вводит данные.
Вам будет интересно:Конструкция PHP if else: скрытая логика
Определение
Captcha PHP — это система реагирования на вызовы, предназначенная для дифференциации людей и роботизированных программ. Капча используется в качестве проверок безопасности для предотвращения спамеров и хакеров от использования форм на веб-страницах для вставки вредоносного кода.
Спецификация
Капча — это тип меры безопасности, известный как аутентификация запроса-ответа. Данное решение помогает защитить пользователя от расшифровки спама и пароля, попросив выполнить простой тест, который докажет, что это человек, а не компьютер, пытающийся проникнуть в защищенную паролем учетную запись.
Вам будет интересно:Как определить количество элементов в массиве PHP?
Тест капчи состоит из двух простых частей: случайной последовательности букв или цифр, которые отображаются как искаженное изображение, и текстового поля. Чтобы пройти тест и доказать свою человеческую идентичность, просто введите символы, которые вы видите на изображении, в текстовое поле.
История
Потребность в Captcha PHP родилась еще в 1997 году. В то время поисковая система AltaVista искала способ блокировать автоматическое размещение URL-адресов на платформе, которая искажала алгоритмы ранжирования поисковой системы. Чтобы решить эту проблему, Андрей Бродер, главный ученый AltaVista, разработал алгоритм, который случайно генерировал изображение печатного текста. Хотя компьютеры не могли распознать изображение, люди могли читать сообщение, содержащее изображение и отвечающее соответствующим образом. Бродер и его команда получили патент на эту технологию в апреле 2001 года.
В 2003 году Николас Хоппер, Мануэль Блум, Луис фон Ан из Университета Карнеги-Меллона и Джон Лэнгфорд из IBM разработали алгоритм и придумали термин Captcha. Имя означает абсолютно автоматизированный тест Тьюринга публичного применения для дифференциации людей машин.
PHP
Вам будет интересно: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, которые также широко используются, просят пользователей идентифицировать подмножество картинок в большом наборе изображений. Например, пользователю может быть представлен набор иконок, и предлагается нажать на все те, в которых есть автомобили.
Другие типы 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), которые просят пользователей различать кошек и собак.
В чем разница между Captcha и reCaptcha?
Captcha — это тест на проверку личности (обычно это размытые буквы, которые необходимо расшифровать), используемые многими сайтами для предотвращения спама.
ReCaptcha — это обратная Captcha. Тот же тест, который используется не только для предотвращения спама, но и для помощи в проекте по цифровому изданию. Другими словами, тесты Recaptcha — это не бессмысленная комбинация слов, а выдержки из книг, в то время как Captcha использует несколько методов проверки личности, включая математические или общие вопросы, визуальные и шахматные головоломки.
В настоящее время reCaptcha является наиболее популярной реализацией.
Применение
Хотя капча не является безусловным средством проверки подлинности, его использование может быть очень эффективным в следующих случаях:
- Перечисления (формы регистрации или сброса пароля часто уязвимы для атак злоумышленников — без Captcha хакер может получить действительные имена пользователей, номера телефонов или любую другую конфиденциальную информацию за короткое время).
- Автоматическая отправка многих запросов GET/POST за короткое время, когда это нежелательно (например, получение SMS/MMS/электронной почты). В данном случае Captcha обеспечивает функцию ограничения скорости.
- Автоматическое создание учетной записи, которая должна использоваться только людьми (например, создание учетных записей электронной почты, остановка спама).
- Автоматическое размещение постов в блогах, форумах и вики-ресурсах.
- Любые автоматические атаки, которые в массовом порядке получают или злоупотребляют конфиденциальной информацией из приложения.
Использование Captcha в качестве защиты от межсайтовой подделки запроса не рекомендуется, так как существуют более сильные контрмеры.
Источник
Создайте простую капчу с помощью PHP | Саймон Угоржи | Geek Culture
Недавно я создал капчу с собственным изображением с помощью PHP, и я покажу вам, как вы тоже можете это сделать.
- Начнем с основной папки.
Мы создадим два файла. Один из них сгенерирует для нас изображение капчи, а другой позволит нам проверить сгенерированную капчу. в сеансе для проверки.
В нашей функции вы можете указать, сколько символов может ввести пользователь.
Я сделал кое-что интересное с этим скриптом.
Мы создадим изображение с помощью PHP, создадим массив, в котором будут храниться случайные цвета фона сгенерированного изображения, затем мы выберем случайный цвет из массива.
Теперь мы воспользуемся функцией imagecolorallocate() для выделения цвета фона нашего изображения с учетом наших индексов массива.
Теперь нам нужно нарисовать нашу строку изображения, используя функцию imagestring().
Перейдем к параметрам;
- $image — сгенерированное изображение
- 5 — встроенный выбор шрифта
- 50 — координата x левого верхнего угла
- 0 — координата y левого верхнего угла (нам нужно, чтобы он был по центру)
- $captcha_txt — вызов текста капчи
- $img_clr — цвет изображения капчи
Теперь нам нужно установить время истечения срока действия текста капчи, хешировать время истечения с текстом капчи, а затем сохранить его в переменной сеанса. .
Наконец, нам нужно преобразовать строку изображения, которую мы сгенерировали с помощью imagesstring() , в изображение png, а затем освободить всю память, связанную с изображением, уничтожив наше изображение.
На этом мы закончили с файлом captcha_image.
Давайте сохраним файл и создадим новый для проверки нашей капчи.
Captcha_verify.php
Мы объявим функцию, которая будет принимать только один параметр, который является пользовательским вводом , а затем установим коды состояния в качестве возвращаемого значения.
ШАГ 1Проверьте, существуют ли 3 переменные сеанса, затем присвойте их значения нашим локальным переменным.
ШАГ 2
- Мы проверим, действительна ли еще капча (т.е. срок ее действия не истек).
- Перефразировать пользовательский ввод md5($input.$captcha_expire).
- Тогда сравните его с тем, что было в нашем сеансе.
Если он совпадает, мы вернем код состояния 200, что означает, что наша проверка капчи прошла успешно. Но если он не совпадает, мы вернем код состояния 400.
Теперь сохраните файл и создайте индексную страницу, где мы будем отображать нашу капчу для пользователя
Index.php
Вот что мы будем делать
- Мы создадим тег изображения и установим src в core/ captcha_image.php.
- Мы создадим форму для ввода пользователем текста с изображения, которое он видит.
- Мы обработаем ввод формы, как только пользователь нажмет кнопку отправки, а затем покажем результат нашей проверки пользователю
Теперь давайте проверим наш скрипт.
Теперь я предоставлю два разных ввода и намеренно оставлю капчу без присмотра на 4 минуты, чтобы показать вам, как работает функция.
- Испытание по капче
- Неудачное испытание
- Успешное испытание
- Истекшее испытание
Я показал вам основные функции, которые нам нужны. Однако вы можете расширить свой сценарий капчи, чтобы автоматически переключать изображения, если пользователь не видит текущее изображение.
Вы также можете задать некоторые стили для вашей капчи.
Посетите мой репозиторий GitHub, чтобы увидеть, как я настроил и стилизовал свой.
Дайте мне знать, если есть что-то, связанное с этим скриптом, с чем я могу вам помочь!
Спасибо!
CAPTCHA — Документация ExpressionEngine 7
- Формы комментариев
- Регистрационная форма участника
- Контактные формы и формы электронной почты Tell-a-Friend
- CAPTCHA Код
- Примечания
- слов CAPTCHA
ExpressionEngine поддерживает то, что известно как «CAPTCHA», или полностью автоматизированные общедоступные тесты Тьюринга, позволяющие различать компьютеры и людей. CAPTCHA — это тест, сгенерированный компьютером, который может легко пройти человек, но который компьютеру сложно выполнить с вычислительной точки зрения.
Так как же это работает? Изображение генерируется в режиме реального времени для пользователя, загружающего веб-страницу. Это изображение содержит слово, которое пользователь должен ввести в форму. Эта концепция эффективна, потому что компьютеры, как правило, не очень хорошо считывают изображения, но люди могут делать это без особых усилий.
В ExpressionEngine CAPTCHA можно использовать в нескольких местах:
- CAPTCHA
- Формы комментариев
- Регистрационная форма участника
- Контактные формы и формы электронной почты Tell-a-Friend
- CAPTCHA Код
- Примечания
- слов CAPTCHA
Настройки, требующие CAPTCHA для этих форм, находятся в Settings --> CAPTCHA
в панели управления.
После того, как вы включите настройку, вам нужно будет добавить код CAPTCHA в форму отправки комментариев. См. ниже код CAPTCHA.
Необходимый код CAPTCHA уже существует в шаблонах участников по умолчанию, поэтому вам не нужно его добавлять. Если у вас есть версия ExpressionEngine до того, как была добавлена функция CAPTCHA, или если вам нужен код иным образом, код CAPTCHA см. ниже.
После того, как вы включите параметр, вам нужно будет добавить код CAPTCHA. См. ниже код CAPTCHA.
{если капча}Пожалуйста, введите слово, которое вы видите на изображении ниже:
{captcha}
{/если}
Содержимое условного тега {if captcha} будет отображаться только в том случае, если у вас включен параметр CAPTCHA либо для комментариев, либо для регистрационных форм.
Код, используемый в форме регистрации участника, очень похож, за исключением того, что отсутствует переменная {captcha_word}:
{if captcha}Пожалуйста, введите слово, которое вы видите на изображении ниже:
{проверка
{/если}
При использовании reCAPTCHA v3 используйте упрощенный тег, который будет выводить требуемый javascript, а в противном случае CAPTCHA будет невидимым.
{если капча} {капча} {/if}
Важно отметить, что у использования CAPTCHA есть обратная сторона. Хотя они могут быть очень успешными в предотвращении возможности автоматических ботов публиковать комментарии или подписываться на членство, они также могут иметь такой же эффект для слепых или слабовидящих пользователей вашего сайта. Если вы включите CAPTCHA, то этим законным пользователям будет чрезвычайно сложно использовать ваш сайт.
Вы должны определить для себя, подходит ли CAPTCHA для вашей ситуации и аудитории вашего сайта.
Для установок ExpressionEngine, которые управляют несколькими доменами или поддоменами, вам может потребоваться указать путь сервера для параметра Относительный путь к папке Captcha в разделе Settings --> CAPTCHA
. Путь к серверу обычно похож на /home/domain.com/http_docs/images/captchas/. Конкретные настройки будут различаться от сервера к серверу, поэтому вам может потребоваться связаться с вашим хостом или администратором сервера, чтобы определить правильный «путь к серверу».