Проверка 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 можно использовать запрос следующего вида:
SELECT COUNT(*) AS count FROM captcha WHERE word = $userValue AND ip_address = $userIP AND captcha_time > $expTime
Преимущество по сравнению с сессиями – не нужны скрипты удаления рисунков (достаточно простого SQL запроса).
Полный пример реализации такой CAPTCHA на php приведен в статье: «Добавляем CAPTCHA к форме».
Также можно посмотреть live demo.
Apple запустила функцию для автоматического обхода капчи на всех сайтах и во всех приложениях
Как известно, интернетом пользуются не только простые пользователи, но и разного рода злоумышленники. Такие автоматизируют те или иные действия, чтобы не затрачивать на такие ни одной минуты своего личного времени. Именно поэтому практически во всех современных сервисах и приложениях есть так называемая капча. Это специальный защитный код с картинки, который требуется вводить помимо логина и пароля. Данная капча позволяет отличить реального человека от бота или робота, которому пока что не под силу распознавать такие проверки безопасности. Однако капча является крайне надоедливой, потому что ее зачастую приходится вводить всякий раз, когда требуется где-то авторизироваться, либо создать новый аккаунт.
И вот, на радость множества людей, компания Apple запустила новую функцию, предназначена которая для автоматического обхода капчи на всех сайтах и во всех приложениях среди всех существующих. Новая возможность уже встроена в свежие бета-версии операционных систем iOS 16 и macOS Ventura, поэтому пользователи уже могут протестировать ее работу, получив максимально много приятных эмоций и впечатлений. Для ее включения нужно лишь запустить «Настройки», после чего перейти в Apple ID и выбрать меню «Пароль и безопасность». В этом разделе находится настройка «Автоматическая проверка», которую и нужно включить. В таком случае «яблочная» корпорация будет сама автоматически проверять устройство и учетную запись.
Само собой, что алгоритмы определения реального пользователя от робота или бота держатся в секрете, но если Apple будет считать, что iPhone, iPad или Mac использует реальный человек, ему не придется вводить где-либо капчу.
В операционной системе и в рамках конкретной учетной записи Apple ID будет создаваться специальный конфиденциальный токен, который окажется передан на каждый веб-сайт, где содержится капча. В таком случае, если сайт или приложение такой получат, они не станут запрашивать капчу. За счет этого пользователям не придется расшифровывать символы и вводить их в специальное окно. Никаких полей для ввода такой не появится, так как система проверки будет считать, что капча уже введена в рамках алгоритма Apple. В настоящее время ни в одной другой операционной системе или в каком-либо электронном устройстве нет ничего подобного, так что можно с полной уверенностью сказать, что «яблочная» корпорация стала самым настоящим первопроходцем в данном плане.
Ранее стало известно о том, что платежная система Mir Pay заработала на iPhone и Android-смартфонах без NFC, и она лучше Apple Pay.
Присоединяйтесь к нам в Google News, Twitter, Facebook*, Instagram* (*площадки признаны в России экстремистскими), ВКонтакте, YouTube и RSS чтобы следить за новостями и оперативно получать интересные материалы.
Как тестировать Invisible reCAPTCHA
Тестирование обычных CAPTCHA
Тестировать обычные CAPTCHA, такие как reCAPTCHA, легко.
- Вы решаете CAPTCHA и отправляете форму.
- Затем вы отправляете форму, не решая CAPTCHA.
Но он невидим!
Как вы тестируете Invisible reCAPTCHA? Невидимая reCatpcha ничего не показывает, если думает, что вы человек. ваша форма просто отправляет нормально.
И это нормально, когда вы хотите протестировать «обычное использование».
Но как проверить случай с роботом? Как будет работать ваша форма, если ее использует сомнительный человек?
Итак, нам нужен способ проверить, как все будет работать, когда мы не будем считаться людьми. В нашем тестировании мы иногда хотим притвориться, что мы робот, а не человек.
Иногда это работает…
Очевидный способ — создать инкогнито или приватное окно в браузере и перейти к своей форме. Иногда это работает, но иногда этого недостаточно, и Invisible reCAPTCHA по-прежнему считает вас человеком.
Ответ!
Chrome позволяет вам притвориться, что вы используете устройство, отличное от того, которое вы используете на самом деле. В основном это используется за помощь в разработке веб-сайтов для мобильных устройств, таких как телефоны и планшеты.
Однако у вас есть один вариант — создать собственное устройство и указать другой пользовательский агент. Это ключ
получить Invisible reCAPTCHA, чтобы бросить вызов вашей человечности.
Следуй этим шагам:
- Перейти к форме
- Щелкните правой кнопкой мыши и выберите «Проверить».
- Найдите кнопку «Переключить панель инструментов устройства» и нажмите ее.
- Chrome открывает панель инструментов устройства над окном вашего контента (и изменяет размер вашего контента, чтобы он соответствовал последнему выбранное устройство):
- Нажмите показанную кнопку раскрывающегося списка и выберите «Изменить»:
- Теперь нажмите «Добавить пользовательское устройство», введите имя (например, «Робот») и установите для строки пользовательского агента значение «BadUserAgent-Bot», как показано ниже.
- Нажмите «Сохранить». Теперь всякий раз, когда вы выбираете это пользовательское устройство, Invisible reCAPTCHA будет
относятся к вам с подозрением и просят решить головоломки CAPTCHA перед отправкой формы.
Обратите внимание, что у вас должно быть открыто окно разработчика Chrome (щелкните правой кнопкой мыши и выберите «Проверить») для это пользовательское устройство для выбора.
Обновление за ноябрь 2022 г.
Мои недавние тесты вышеперечисленного не смогли форсировать вызов. Я думаю, что Chrome изменился и/или Invisible reCaptcha стала еще умнее.
Мой обходной путь состоял в том, чтобы использовать браузер Firefox, который , а не , вошел в мою учетную запись Google. Я использовал аналогичный щелчок правой кнопкой мыши, затем функцию «Проверить» и «Режим адаптивного дизайна». кнопку с правой стороны. Вот скриншот настройки, которая сработала для меня:
Вы робот? Представляем «No CAPTCHA reCAPTCHA» | Центральный блог Google Поиска
Среда, 3 декабря 2014 г.
reCAPTCHA защищает сайты
вы любите от спама и оскорблений. Итак, когда вы выходите в интернет, скажем, на какой-нибудь отпуск в последнюю минуту
покупки — вы не будете конкурировать с роботами и оскорбительными скриптами за доступ к сайтам. Годами,
мы предложили пользователям подтвердить, что они не роботы, попросив их прочитать искаженный текст и ввести
в коробку вот так:
Но мы решили, что будет проще напрямую спросить наших пользователей, являются ли они роботы — так, мы сделали! Мы начали внедрять новый API, радикально упрощающий Опыт reCAPTCHA. Мы называем это «No CAPTCHA reCAPTCHA», и вот как это выглядит:
На веб-сайтах, использующих этот новый API, значительное число пользователей смогут безопасно и легко подтвердите, что они люди, не разгадывая CAPTCHA. Вместо этого с помощью всего лишь одного щелкните, они подтвердят, что они не робот.
Хотя новый API reCAPTCHA может показаться простым, за ним скрывается высокая степень сложности.
этот скромный флажок. CAPTCHA долгое время основывалась на неспособности роботов решать искаженные
текст. Однако,
наше исследование недавно показало
что сегодняшняя технология искусственного интеллекта может решить даже самый сложный вариант
искаженный текст с точностью 99,8%. Таким образом, искаженный текст сам по себе больше не является надежным тестом.
Чтобы противостоять этому, в прошлом году мы развитый серверная часть расширенного анализа рисков для reCAPTCHA, которая активно учитывает все действия пользователя с помощью CAPTCHA — до, во время и после — чтобы определить, является ли этот пользователь человеком. Это позволяет мы меньше полагаемся на ввод искаженного текста и, в свою очередь, предлагаем лучший опыт для пользователей. Мы говорили об этом в нашем пост ко дню святого Валентина Ранее в этом году.
Новый API — это следующий шаг в этой неуклонной эволюции. Теперь люди могут просто поставить галочку и в большинстве случаев они преодолевают трудности.
Ты
уверен, что ты не робот? Тем не менее, CAPTCHA еще не исчезли. В случаях, когда механизм анализа рисков не может
уверенно предсказать, является ли пользователь человеком или злоумышленником, он предложит CAPTCHA для
вызывать больше подсказок, увеличивая количество контрольных точек безопасности для подтверждения того, что пользователь действителен.
Этот новый API также позволяет нам экспериментировать с новыми типами задач, которые нам, людям, легче решать. использования, особенно на мобильных устройствах. В приведенном ниже примере вы можете увидеть CAPTCHA, основанную на классический Компьютерное зрение проблема маркировки изображений. В этой версии теста CAPTCHA вас попросят выбрать все изображения, соответствующие подсказке. Гораздо проще нажать на фотографии кошек или индюков, чем утомительно набирать строку искаженного текста на телефоне.
Внедрение нового API на вашем сайте
По мере того, как все больше веб-сайтов переходят на новый API, все больше людей увидят «Нет CAPTCHA reCAPTCHA». Ранние последователи,
как Снапчат,
Вордпресс,
Humble Bundle и некоторые другие
уже видим отличные результаты с этим новым API. Например, за последнюю неделю более 60%
Трафик WordPress и более 80% трафика Humble Bundle на reCAPTCHA столкнулись с нет
Опыт CAPTCHA — пользователи быстрее попадали на эти сайты.