Что значит проверка капчи
Капча: что это такое простыми словами
Несомненно, что все пользователи Глобальной сети сталкивались с такой насущной проблемой, но не каждый знает о том, что это и есть так называемая капча. Так же не многим известно, что на английском CAPTCHA – это аббревиатура, которая в переводе на русский язык значит: полностью автоматизированный и общедоступный тест Тьюринга, чтобы отличить компьютер от человека.
Что такое капча
Из расшифрованной выше аббревиатуры уже можно понять, что такое капча, простыми словами –она определяет, является ли пользователь реальным или спам-роботом. Так, возможно, на некоторых сайтах, чтобы узнать цену СЕО-продвижения придётся для начала ввести проверочный код. Капча генерирует сочетания из различных букв, цифр и знаков, полагаясь на способность человека определять, какими на самом деле символами они являются.
Чтобы подтвердить цифровую транзакцию, используя систему капчи, пользователю предоставляется искаженное слово, обычно помещаемое поверх искаженного фона. Пользователь должен ввести слово в поле, чтобы завершить процесс. Компьютерам трудно декодировать искаженные слова, в то время как люди могут легко расшифровать текст.
Некоторые капчи теперь используют картинки вместо слов, где пользователю предоставляют серию картинок и спрашивают, что является общим элементом среди всех картинок. Вводя этот общий элемент, пользователь проверяет транзакцию, и компьютер знает, что имеет дело с человеком, а не с ботом.
Что такое капча при регистрации
Многие задаются вопросом, что такое капча при регистрации и зачем она нужна. Да, зачастую, мы можем встретить капчу при заполнении регистрационных форм. Например, Вы думаете о том, как найти человека по почте, для этого нужно зарегистрироваться. Это вполне нормально и безобидно. В таких случаях капча направлена на борьбу с ботами, которые создают множество учётных записей для рассылки спама.
На веб-сайтах по продаже билетов, также используется капча, чтобы не допустить чрезмерного приобретения билетов на большие мероприятия скальперами (сторонниками скоростной торговли/спекуляции). Это позволяет законопослушным клиентам покупать билеты справедливо и не дает скальперам размещать тысячи заказов.
Наконец, веб-страницы или блоги, содержащие доски объявлений, например, о стоимости разработки сайта-визитки, или контактные формы, используют капчу для предотвращения спам-сообщений или комментариев. То есть помогает избежать автоматическую публикацию сообщений ботами.
Неверная капча: что это такое
Рассмотрим, что такое неверная капча и чем она грозит. Неверная капча означает то, что при регистрации или при совершении любой другой операции Вы неправильно ввели предложенные Вам символы с картинки.
Если Вы допустили ошибку, придётся сделать это заново, но, конечно же, символы будут уже совсем другие. С такой проблемой пользователи сталкиваются очень часто, так как разобрать трудночитаемые искажённые символы достаточно затруднительно.
К сожалению, поскольку технологии и хакеры становятся более продвинутыми, их мошенническая тактика тоже. Чтобы полностью разобраться в теме и огородить себя от нежелательных последствий изучите, что такое спам в Интернете и чем он грозит. В то время, как сама система капчи безопасна, киберпреступники начали включать её в свои ложные или мошеннические веб-сайты, чтобы совершать свои действия более правдоподобно.
С помощью интригующих сообщений в ленте злоумышленники могут обмануть пользователей, например: «Вся страна в шоке, предсказания о конце света оказались..». После того, как Вы нажмете на эту запись, нужно будет ввести поддельный проверочный код и перейти на целевую страницу. В это время вирус захватит Ваш аккаунт.
Сегодня мы разобрались в том, что такое капча и для чего она нужна. Узнать, как от неё избавиться можно на примере нашего рассказа о том, как убрать капчу в Яндекс Вордстат и будет ли это эффективно. Будьте внимательны и не попадайтесь на уловки интернет-мошенников.
Проверка CAPTCHA
В этой статье я расскажу о нескольких способах проверки поля CAPTCHA в html формах.
Думаю, объяснять, что такое CAPTCHA, смысла не имеет, поэтому сразу перейдем к ее использованию.
На сегодняшний день CAPTCHA используется как один из основных способов защиты от спама, поэтому от ее эффективности в значительной степени зависит нормальная работа сайта.
Наибольшее распространение получили CAPTCHA использующие рисунки с искаженным текстом. Но в последнее время все чаще появляются альтернативные варианты, предлагающие посетителю ответить на какой-то вопрос или выполнить определенное действие (например, выбрать картинку из нескольких предложенных).
Какой бы из этих способов вы не выбрали, принцип работы с CAPTCHA остается неизменным.
При создании формы с CAPTCHA вы должны сохранить правильный ответ, а после получения данных формы проверить ответ посетителя.
Более наглядно этот процесс показан на рисунке.
Наибольший интерес здесь представляют две операции:
1. сохранение данных CAPTCHA;
2. проверка полученного от посетителя значения.
Существуют три основных способа сохранения данных CAPTCHA.
1. с помощью скрытых полей формы;
2. с помощью сессий;
3. с помощью базы данных.
Примечание. Под данными CAPTCHA я подразумеваю: правильный ответ, путь к изображению (если оно используется), идентификатор посетителя (если нужен).
Первый вариант самый незащищенный. По-сути, вы отправляете посетителю правильный ответ, а для спамерских ботов работа со скрытым полем формы ничем не отличается от работы с обычным.
Главное преимущество такого метода – простота реализации. Нужно просто сравнить значения двух полей формы (скрытого и заполненного посетителем).
Сохранение данных в сессии предоставляет более высокий уровень безопасности.
Правильные ответы хранятся на сервере и недоступны посетителям. Кроме того, в этом случае легко ограничить «срок жизни» CAPTCHA, просто задав «срок жизни» сессии.
Правда тут возникает небольшая проблема. Представьте, что вы создали CAPTCHA, которая использует изображения с текстом. Эти изображения создаются при каждом обращении к форме и сохраняются в какой-нибудь папке.
Что произойдет с этими файлами если сессия будет просрочена? Ответ – ничего. Они будут скапливаться, и занимать место. Т.е. нужен скрипт, периодически удаляющий устаревшие файлы.
Использование базы данных для хранения данных CAPTCHA тоже достаточно безопасный вариант, который обладает своими преимуществами и недостатками.
Главный недостаток по сравнению с сессиями – необходимость отличать одного посетителя от другого. Для этого можно использовать его IP адрес (или комбинацию IP адреса и данных браузера (например, использовать заголовок User-Agent)).
Таким образом, для хранения данных CAPTCHA можно использовать таблицу с такими полями:
captcha_id – первичный ключ;
captcha_time – время создания CAPTCHA;
ip_address – адрес посетителя;
captcha_text – текст, написанный на рисунке;
pic_name – имя рисунка.
В этом случае для получения данных CAPTCHA можно использовать запрос следующего вида:
Преимущество по сравнению с сессиями – не нужны скрипты удаления рисунков (достаточно простого SQL запроса).
Полный пример реализации такой CAPTCHA на php приведен в статье: «Добавляем CAPTCHA к форме».
Также можно посмотреть live demo.
Как это работает: CAPTCHA
Сколько лет существует Хабр — столько лет на нём регулярно появляются посты про очередную капчу — будь то скрипт генерации картинки, новая идея капчи с котиками и тому подобное. Самый свежий пример того, что человек не совсем понимает — как же всё таки должна работать капча (см. текст поста и последние комментарии), но при этом делится своими заблуждениями с сообществом. Складывается ощущение, что капча — это такая terra incognita для большинства разработчиков — как для тех, кто просто прикручивает её к очередной форме в надежде на то, что она будет работать «из коробки», так и для тех кто придумывает капчи вроде тех, на которых надо выбрать картинку с котиком из нескольких фото.
Статья содержит полезную информацию для тех, кто использует капчу на своём сервере, вместо того чтобы довериться стороннему сервису вроде reCaptcha.
Captcha
Согласно своему определению, captcha — это автоматизированный публичный тест Тьюринга (тест который может пройти человек, но не компьютер). В статье я буду рассматривать свойтсва капчи на примере самого распространненого её вида — текста на картинке, хотя почти все написанное одинаково применимо к любому виду капчи.
Два главных свойства капчи
Любая капча должна обладать двумя свойствами, без которых она не будет работать:
Устойчивость к распознаванию — свойство, защищающее капчу от распознавания алгоритмом — например системой распознавания текста. Гарантирует то, что человек сможет прочитать текст на картинке, а компьютер нет.
Антипример: стандартная капча форумов phpBB 2.x таким свойством не обладала — из-за относительной простоты распознавания появились скрипты, которые спамили все подряд форумы вынуждая веб-мастеров менять капчу на более стойкую.
Устойчивость к угадыванию — свойство капчи, не позволяющее угадать её значение за небольшое число попыток (менее 1000). Если набор возможных значений капчи невелик, программе не составит труда угадать её подбором вместо распознавания.
Антипример: арифметическая капча вроде «1+2» (перебор чисел от 1 до 20 в скором времени даст результат).
Антипример: выбрать из нескольких картинок ту, на которой изображён котик.
Проверка капчи
Значение для проверки должно храниться на сервере, а не передаваться вместе с картинкой в браузер. Для сопоставления посетителя и правильного значения капчи необходимо использовать некий ключ, который передаётся вместе с капчей (идентификатор сессии, номер капчи и т.п.)
Антипример: если передавать саму капчу и значение для ее проверки (в том числе зашифрованное), то человеку достаточно один раз распознать такую капчу и далее использовать комбинацию «ответ»-«значение для проверки» в своём скрипте (по ссылке в начале поста как раз такой случай)
После проверки, сохраненное значение капчи необходимо удалить. Если не сделать этого, злоумышленник сможет использовать данное значение снова неограниченное число раз. Да, при обновлении страницы с формой обновляется и капча (либо при генерации формы, либо при генерации картинки), вот только скрипт может не загружать форму снова (надо упомянуть, что это не актуально если на сайте используются одноразовые csrf-токены для форм).
Антипример: гипотетическая форма логина, в которой достаточно один раз ввести капчу правильно, и далее подбирать пароль скриптом, избегая перегенерации капчи на сервере.
Пуленепробиваемая капча
Защита от перебора. Если ваша капча устойчива к распознаванию, но не очень устойчива к перебору (например на ней надо прочитать всего 3-4 цифры), желательно ограничить число неправильных ответов «с одного ip» / «для одного логина» / etc. Такие ограничения необходимо проверять ДО проверки самой капчи (то есть даже в случае правильно введенной капчи, при наличии ограничения она не должна считаться пройденной) иначе оно не будет препятствовать перебору.
Защита от DoS. При генерации капчи на своем сервере, надо понимать что это удобный вектор проведения DoS атак (которую, в отличие от DDoS, может устроить любой школьник). Для защиты можно ограничить число генерации капчи для одного ip, кэшированием капч и т.д. Подробнее про это
Защита от распознавания. Если вы выбираете капчу, или вдруг собираетесь написать её сами, желательно понимать какая капча более защищена от распознавания. Существуют готовые универсальные скрипты распознавания капчи, работающие по принципу OCR, а в случае если ваш сайт заинтересует спамеров есть риск, что будут использовать / писать скрипт конкретно под вашу капчу. Последнее правда относится больше к сайтам уровня Яндекс или vk, а вот вариант с защитой от банальных OCR желательно предусмотреть.
Защита от антигейтов. Если говорить формально, то капча как тест Тьюринга не обязана защищать вас от антигейтов, так как в этом случае её будет распознавать человек. С практической же точки зрения, этот вопрос весьма актуален и защищаться как-то надо.
Тут нет и не может быть «золотого стандарта» (ибо в таком случае антигейты внедрят его поддержку), поэтому вы вольны дополнять капчу любыми ухищрениями, чтобы сделать её распознавание через антигейт невозможным. Например:
— нестандартная капча (сбор паззла, поворот изображения, клик по области на фото и т.п.);
— кириллическая капча — самое простое решение, но имеет ряд минусов: подходит только для проектов с русскоязычной аудиторией, есть антигейты с поддержкой кириллицы;
— использование виртуальной клавиатуры рядом с капчей для ввода нестандартных символов или фигур (может быть неудобно пользователям мобильных);
Юзабилити
Не просите ввести капчу, если вы уже убедились, что перед вами человек. Тут однако, надо быть осторожным, чтобы форму нельзя было использовать скриптом неограниченное число раз после однократного ввода капчи человеком.
Пример: форма регистрации. Если я где-то регистрируюсь, и забыл ввести поле «почтовый индекс», но правильно ввёл капчу — не надо показывать мне новую. Потратьте 10 минут на то, чтобы сохранить где-то у себя, что вот эту конкретную форму сейчас пытается заполнить живой человек.
Для облегчения распознавания человеком: не используйте в капче одновременно буквы и цифры, не используйте одновременно прописные и строчные буквы, исключите похожие символы.
Отказ от использования капчи
Лучшая капча — отсутствие капчи. Там где можно отказаться от её использования — это надо сделать. Возможно для этого придется реализовать дополнительные лимиты и проверки, но пользователи скажут вам спасибо.
Но тут надо быть очень осторожным. Например: форма регистрации без капчи, с полем email на который приходит письмо с активацией. Без дополнительных средств защиты такую форму могут завалить «левыми» адресами, и ваш сайт включат в черные списки почтовые службы. В таком случае можно обходиться без капчи, но только если у вас есть другой рубеж защиты, вроде лимита по ip.
Кому то информация в этом топике покажется очевидной, но если бы я не сталкивался с примерами непонимания этих простых принципов в жизни, в том числе у опытных коллег-разработчиков, я бы не стал тратить время на написание этого текста.
Что такое капча и для чего она нужна, какие виды бывают и как ее разгадать
Капча – с англ. CAPTCHA расшифровывается Completely Automated Public Turing test to tell Computers and Humans Apart, что в переводе – полностью автоматизированный публичный тест Тьюринга, который позволяет выявить роботов, ботов, хакерский софт и вирусы, имитирующие людей. Проще говоря, это простая задачка или тест, которую решит человек, но для компьютерной программы она станет трудоемкой и сложной (в идеале – нерешаемой вовсе).
В этой статье рассмотрим зачем нужна капча и действительно ли она помогает отличить роботов от людей на веб-сайтах? Кто пользуется капчей? Какая капча бывает и как ее разгадать? Сколько можно заработать на капче обычному пользователю без навыков и подготовки?
История возникновения капчи
Тест Тьюринга был придуман еще в 1950 году математиком и криптологом Аланом Тьюрингом. Своими трудами он пытался определить, может ли машина мыслить. Но саму капчу (разработку и товарный знак) придумали в Университете Ка́рнеги — Ме́ллона, который занимается исследованиями в области науки и техники, инноваций в областях информационных технологий, робототехники и искусственного интеллекта. Университет также известен во многих других областях, включая менеджмент, экономику и лингвистику. Имеет партнёрские отношения с IBM и другими известными компаниями.
Впервые термин появился в 2000 году. Тогда тест представлял собой простое изображение с различными символами, которые и нужно ввести в представленное поле. Вот они:
Капча должна была отсечь компьютерных ботов и автоматических спамеров на различных форумах и блогах. Откуда же взялись эти боты и спамеры? В интернете, как и в обычной жизни, есть честные люди, и нечестные. Есть герои, есть злодеи. Любители халявы быстро смекнули, что можно создать программу, которая под видом человека будет ходить по сайтам, автоматически регистрироваться (если это необходимо) и оставлять заранее подготовленные комментарии. В самих комментариях можно было использовать все что угодно: рекламу, ссылки на другие сайты, вирусные файлы, фейковые истории о больных детях и реквизиты для помощи им.
Чтобы предотвратить этот спам владельцы сайтов стали использовать капчу, которую мог разгадать реальный посетитель, но не смогла бы решить хакерская программа. Капча устанавливалась в форму комментария и на этапе отправки сообщения отсекала ботов.
Хакеры не остались в стороне и стали совершенствовать своих ботов, которые научились разгадывать простенькие капчи, как на изображении выше.Тогда разработчики из Университета Карнеги-Меллон, возглавляемые Льюисом Фон Аном, усовершенствовали капчу и в 2009 году представили новую версию, назвав её «reCAPTCHA» (рекапча).
ReCAPTCHA предполагает разгадывание двух слова, одно из которых взято с трудно распознаваемого источника (например, книги).
Кстати, сама система ReCAPTCHA имела более широкий спектр использования и позволяла не только защищать сайты от ботов, но и осуществляла оцифровку архивов газет и книг. Но гораздо интереснее то, что оцифровка производилась как раз за счет тех самых пользователей, что занимались разгадыванием рекапчи.
Из двух слов, что предоставляла система для разгадывания, нужно было разгадать только одно, которое лучше читалось, так как именно оно было запрограммировано на разгадывание. Второе же слово подставлялось из списка не разгаданных ранее автоматической системы, которая использовалась для оцифровки книг и журналов.
В России, кстати, после пожара в библиотеке ИНИОН РАН, внесли поправки в Закон, согласно которому не менее 10% издаваемых в России книг должны включаться в Национальную электронную библиотеку. Сканируются прежде всего редкие и уникальные издания, сохранность которых вызывает опасения.
Но вернемся к нашей капче. Понимая всю важность и перспективность данной технологии, компания Google в 2009 году купила сервис «reCAPTCHA». Кстати, у интернет-гиганта есть сервис Google Книги и Архив новостей Google, которые используют технологию сканирования и распознавания текста.
Сторонники теории заговоров считают, что Google пошел гораздо дальше и использует посетителей интернета в своих целях не только для оцифровки текста, но и для машинного обучения своей версии Искусственного Интеллекта (далее ИИ). Предполагается, что система ИИ найдет широкое распространение в нашей жизни. Например, с 2009 года корпорация Google разрабатывает и тестирует технологию для беспилотного управления автомобилем.
Toyota Prius, модифицированная для работы в качестве беспилотного автомобиля Google. Фото взято с сайта New York Times
Беспилотный автомобиль с устройством на крыше, разработанный и оснащенный Google, курсирующий по шоссе 101 в Маунтин-Вью, Калифорния. Автор фото: Ramin Rahimian для The New York Times
И вполне возможно, что все эти светофоры и пешеходные дорожки, которые мы разгадыванием при входе на какой-либо сайт – помогают этим самым беспилотным автомобилям определять различные объекты во время движения:
Подтверждением данной теории служит запись из блога Google, в котором говорится о том, что технология ReCaptcha помогает точнее определять адреса с номерами домов, фото которых были сделаны автомобилями (но уже с водителями), а также другим оборудованием Google Street View, курсирующим по улицам всего мира, и собирающим информацию для сервиса Google Maps (Google Карты).
Так выглядят некоторые капчи, предлагающие нам определить номер дома.
Оборудование Google, создающее панорамы для просмотра улиц.
С помощью этого сервиса можно не выходя из дома посмотреть панораму практически любого города, а также уникальных уголков планеты.
Кого-то может возмутить, что Google так открыто использует чужой труд в своих целях, но лично я не против этого, так как вижу, что каждый мой клик идет на нужное дело. Сам я не раз пользовался Google-картами. Особенно помогли они нашему главреду (Роману Кожину), когда он собирался переезжать на Юг и выбирал между Сочи и Геленджиком. Благодаря Google-картам он виртуально прогулялся по этим городам, оценил застройку, нашел нужные объекты и посмотрел насколько комфортно организована городская среда. Позже, эти карты помогли ему выбрать квартиру для аренды. Сначала он отобрал список претендентов на Авито. затем оценил расположение объектов на Google Картах и только после этого прозвонил хозяев и уточнил детали. Некоторые объекты отпали на этапе просмотра их на картах. Об этом переезде и впечатлениях от жизни в Геленджике можно прочитать в этой статье: Переезд в Геленджик на ПМЖ: отзыв 2020 года, плюсы и минусы жизни на Юге + советы по переезду
Далее мы рассмотрим подробнее, какие типы капчи бывают и как их правильно разгадать.
Как пройти капчу
Рассмотрим, какая капча бывает в интернете, и как ее можно разгадать.
Текстовая
Начнем с самой простой – текстовой. Представляет собой короткий набор несвязанных символов (или же слово), как на картинке ниже.
Как видно, перемежаются и буквы, и символы. Зачастую они «плавают», то есть – искажены. Это сделано нарочно, чтобы повысить сложность задачи и не пропустить ботов. Дополнительно могут присутствовать различные линии и буквы, не относящиеся к капче.
Как пройти? Нужно внимательно всмотреться в картинку и ввести то, что там изображено. Важно учитывать разный регистр букв – заглавные и прописные отличаются, что может стать вероятной ошибкой при разгадывании.
Главный недостаток такой капчи – это то, что ее не всегда можно разобрать. Помню случаи, когда я тратил и по 10 попыток – нервишки тогда были на пределе! 🙂
Попрактикуемся? Попробуйте отгадать капчу:
Ответ: moiates
Это было просто – вот вариант посложнее:
Ответ: jhowspee
Что делать, если не получилось разгадать? Как я и упоминал, не всегда удается распознать текст по причине того, что он может быть сильно искажен. Вам помогут следующие советы:
- Обновление капчи. Разработчики капчи осознают, что предложенные варианты могут быть попросту нечитаемыми. Генерируются они программами, а не вручную рисуются человеком, и посему, могут проскакивать такие «ошибки». Поищите рядом с капчей кнопку «Обновить». Она позволяет получить новую капчу и не корпеть над сложным вариантом. Например:
Полукруглая стрелка рядом с капчей и есть кнопка Обновить
Отмечу, что не везде есть такая возможность. Вот еще несколько советов:
- Воспроизведение аудио-версии капчи. Помимо или вместо кнопки обновления у капчи может быть значок «динамика» – это означает ее звуковое воспроизведение. То есть, если не получается распознать непонятные символы, можно их «прослушать».
Отмечу, что вместо приятного женского голоса вас могут ожидать звуки, записанные словно из преисподней 🙂
- Обновление страницы. Если капчу нельзя обновить или «прослушать», то может помочь обновление страницы, на которой вы находитесь. Делается это с помощью средств браузера, и обычно изображается также, закругленной стрелкой.
- Обращение в тех. поддержку. Если же система никак не хочет пускать вас внутрь, подозревая наличие имплантатов вместо человеческого скелета, то остается только обратиться в техническую поддержку сайта с этой проблемой. С другой стороны, неисправность может наблюдаться со стороны самого сайта – например, он просто глючит и посему не принимает капчу. Следует выждать некоторое время и вернуться с новыми силами.
ReCAPTCHA текстовая
Рекапча практически не распознается программами, что и является ее преимуществом. Человеку же не составит труда ее разгадать. Она подразделяется на три вида:
- Текстовая; Графическая; Галочка.
Начнем с текстовой и рассмотрим парочку примеров. Она мало чем отличается от той, что я рассмотрел в предыдущем подразделе. Состоит из двух слов (одно – стандартный цифровой текст, а второе – оцифрованный фрагмент книги, номер дома и тому подобное). Достаточно разгадать одно из двух.
Также встречаются варианты без копирования с книг, но с двумя словами. Попробуйте отгадать:
Ответ: husband discard
Что делать, если не получается разгадать? Как и в случае с обычной текстовой капчей, помогают следующие способы:
- Обновление капчи; Воспроизведение аудио-версии;
- Обновление страницы; Обращение в техническую поддержку.
ReCAPTCHA графическая
Под графической рекапчей понимают набор картинок, где нужно найти один и тот же объект, либо выделить на едином изображении что-либо. Разгадать несложно, но есть свои особенности. Во-первых, нужно пройти несколько капч одновременно. Во-вторых, из-за ошибки придется проходить заново.
Разберем примеры. На первом изображено 9 картинок. Нужно выбрать те, на которых есть вывески с названиями улиц:
На картинке я красным цветом выделил фрагменты, что соответствуют заданию. Обычно их несколько, 3-4 штуки.
Похожий пример – нужно найти картинки с изображениями грузовиков:
Следующий тип – это единое изображение, разбитое на множество «плиток». На двух примерах ниже требуется выделить сегменты с дорожными знаками:
Несмотря на свою простоту, капча может потрепать нервишки. Не всегда понятно, относится ли сегмент к требуемому объекту. Например, совсем крохотный кусочек светофора может попасть на соседнюю плитку. Только посмотрите, как один парень 3 минуты проходит капчу: