Ne v kontakte Asocial programmer's blog

Антикапча с примерами

Предисловие для пришедших и поисковиков: Скорее всего, вы искали инвайты на антикапчу или информацию о том, как ею пользоваться. Указанные две ссылки вам помогут. А эта статься немного о других вещах ;)

По ходу работы над RegSubmitter‘ом мне довелось бодаться с самыми разными капчами и теперь хочется изложить наиболее типичные ошибки, которые делают веб-программисты, реализуя антиботовскую защиту. Почему антикапча? Потому, что капча подразумевает усложнение регистрации для ботов и легкость регистрации для людей. В приведенных ниже случаях капча лишь усложняет жизнь людям, но боты обходят ее с легкостью.

  1. Передача секретного кода скрипту генерации картинки в виде части URL.

    Почему так нельзя делать: проверочный код не должен ни в каком виде передаваться на сторону клиента. Спамеры не дураки и распарсить нужный фрагмент html страницы, чтобы извлечь код - секундное дело.

    Пример: MyElect.ru

    Решение: передавать проверочный код в качестве переменной сессии.

  2. Передача эталонного кода в виде скрытого поля формы.

    **Почему так нельзя делать: **по сути, это еще более грубый вариант предыдущей ошибки. При таком подходе спамер сможет передавать фальшивый эталонный код, который будет геренироваться не сайтом, а программой-спамером. Естественно, передавая в качестве введенного кода тот же самый код, спамер пройдет проверку.

    Пример: Savelink.org.ua (о нем я, кстати, уже писал)

    Решение: как и в прошлом случае, хранить эталонный код на сервере в качестве переменной сессии.

  3. Использование ограниченного набора вопросов/заданий (или, что еще хуже, вообще только одного)

    Почему так нельзя делать: спамер может заранее заготовить ответы на все вопросы и подставлять всякий раз один из них, в зависимости от вопроса.

    Пример:Ru-Marks.net

    Решение: генерировать случайное задание.

И напоследок другая крайность: капча непроходимая как для ботов, так и для людей.

Фраза “13+18=” угадывается только после длительного и вдумчивого изучения картинки.

ОК, с ошибками разобрались, а где взять нормальную капчу? Я пользуюсь KCaptcha. Для человека она вполне читабельна, но вместе с тем я ни разу не слышал, чтобы боты ее пробивали.

UPD 15.03.09

Сейвлинк.орг.юа загнулся. Сдох. Перестал существовать. Почему-то меня это не удивляет.

PS. Естественно, индусы пишут не только разнообразные антикапчи. Они пишут и много другого говнокода ;)