CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) – полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей. Такое определение можно найти на Wikipedia, и звучит оно слишком по научному, мне больше нравится следующее определение.
CAPTCHA (captcha) — это специальный защитный программный код, который показывается на некоторых сайтах в виде всплывающего окна или картинки. Чаще всего пользователю предлагается решить простую задачу, подтвердить статус, ввести слова или цифры, ответить на вопрос. Если этого не сделать, вы не сможете далее пользоваться сайтом. Так программа определяет, являетесь ли вы реальным человеком или ботом. Но также есть невидимые капчи, например Invisible Recaptcha и ReCAPTCHA Enterprise, которые анализируют ваше поведение на сайте и, на основе этих данных, принимают решение, являетесь ли вы человеком или скриптом.
В Интернете существует огромное количество способов вести себя плохо, если вы программист. Вам может прийти в голову зарегистрировать 10 000 аккаунтов на вашем любимом сайте и устроить вакханалию, или вы можете захотеть написать безобидный скрипт для сбора информации с сайта. В первом и втором случае вы можете столкнуться с капчей, которая создается для того, чтобы усложнить задачу новичку-программисту или совсем помешать его планам.
Капчи создаются программистами для защиты от других программистов. Можно представить это как белую и черную сторону печеньки: одни защищают, другие обходят эту защиту. Между разработчиками капч и разработчиками скриптов идет борьба, и пока что побеждают разработчики скриптов, по той причине, что практически любую капчу можно обойти автоматически. Этому будем учиться в этом разделе курса.
Какие бывают капчи
Некоторое время назад практически все капчи выглядели одинаково — набор символов, которые необходимо повторить. Сейчас такие капчи сложно встретить. Они отличаются степенью искажения текста, что не позволяет ботам разгадать его.
Сейчас большой популярностью пользуются капчи от Google. Для человека такие капчи не вызывают проблем, но когда ваш парсер сталкивается с ними, он не может двигаться дальше, пока капча не разгадана. Сложность такой капчи для неопытного программиста может показаться слишком великой. В некоторых случаях это действительно так, но после прохождения этого модуля вы сможете разгадывать все популярные капчи от Google и не только.
Самый сложный вид капчи для решения — это тот, который связан с отправкой кода на номер телефона. Практически нерешаемой капчей считается та, когда приходит звонок на ваш номер телефона и произносится секретный код. Такие капчи не могут быть решены без дополнительного программного обеспечения. Однако, если у вас есть время, вы можете смело повышать цену за решение таких задач на фрилансе.
Иногда можно встретить капчи, где необходимо вставить пазл в указанное место. Такие задачи сложны для решения программным кодом, но не вызывают трудностей у человека. Однако, это не означает, что мы не можем обойти ее. В этом модуле вы научитесь это делать.
Видов капчи огромное количество, перечислять их можно очень долго, но это не приблизит вас к пониманию того, как их обходить. Предвижу ваш вопрос и хочу ответить на него сразу: решаются все капчи примерно одним способом. Об этом способе мы будем говорить в следующих темах.
Когда показывается капча
Любая капча может быть привязана к любому событию на сайте, основных событий не так много, ниже я их перечислю:
При регистрации аккаунта;
При нажатии на запрограммированную кнопку или при посещении страницы;
Каждые N-запросов;
Каждые N времени, например, каждые 10-30 минут, хоть это не частая практика, но такое иногда бывает;
В любом другом случае, когда система безопасности сайта заподозрила в ваших действиях автоматизацию;