Идеальная капча, есть ли она?

Привет, сегодня я решил комплексно поговорить об одном из методов защиты от спама, который известен как капча (captcha). Он заключается в создании теста, который разделяет людей и ботов. Комплексность разговора подразумевает, что мы обсудим

  • Направленность и надежность защиты.
  • Удобство для обычных пользователей.
  • Примеры разных видов капч.
  • Невидимую капчу.
  • Другие пути борьбы со спамом.

От кого спасет капча

Captcha — сокращение от английского Completely Automated Public Turing test to tell Computers and Humans Apart. Другими словами она предназначена для отсеивания роботов от людей. Это первое и принципиальное ограничение капчи. Она не сможет оградить сайт от ручного спама, а так же от ручного распознования капчи вкупе с автоматическим спамом. Второе ограничение — несовершенство капчи и создание алгоритмов автоматического ее распознания.

Как работает ручное распознавание капчи

Есть 2 действенных метода распознавания капчи. Использование дешевой рабочей силы (пресловутые Индусы) и использование капчи других сервисов на своих сайтах. Например, адалт ресурс с солидной посещаемостью может требовать от пользователей ввести капчу для просмотра роликов. Таким образом можно распознавать капчу, используя труд ничего не подозревающих юзеров.

Распознавание капчи

Задача распознавания сложной капчи очень нетривиальна, но тут возникает конфликт с удобством для обычных юзеров, у которых так же могут быть проблемы с прохождением теста с первой попытки, что негативно сказывается на общем восприятии сайта. В итоге разработчик капчи должен искать пути для затруднения автоматического распознавания, но при этом не усложнять жизнь простому пользователю. В идеальном случае пользователь должен проходить тест за 1-2 секунды, тогда он не будет вызывать сильного раздражения.

Кроме возможности распознавания капчи стоит иметь ввиду возможность ее случайного прохождения. Например вот такая достаточно популярная в рускоязычных блогах капча, при случайном нажатии проходится в каждом третьем случае. Даже 1 прохождения из 1000 достаточно для несостоятельности капчи.

Распознавание капчи

Удобство для пользователя

На мой взгляд, именно это самая слабая сторона классических подходов к капче. Вот, к примеру, самый распространенный в мире сервис капчи reCaptcha

reCaptcha

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

Постоянное использование капчи на сайте — перекладывание забот разработчика по борьбе со спамом на плечи пользователей. Это не круто. Однако это не значит, что я за то чтобы не использовать капчу вовсе. Большинство сайтов в интернете не настолько велики, чтобы имело смысл написание специального спам бота под данный конкретный сайт. А если спам не несет выгоды, то никто не будет им заниматься. Поэтому приемлемым вариантом является использование невидимой для пользователя капчи, которая легко обходится при целенаправленном спаме, но позволяет защититься от большинства спам ботов, которые работают за счет количества, а не качетсва обхода защиты. Как это? Обсудим ниже после примеров.

Примеры

Классическая капча (текстовая)

1. reCaptcha
Единственный плюс данного сервиса, что он способствует распознаванию книг, но стоит ли делать это силами ваших посетителей?

reCaptcha

2. captchas.net
Использует случайный набор символов, но более читабален.

captchas

3. BotDetect
Позволяет настроить варианты отображения и звука.

BotDetect

Графическая капча

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

1. Asirra
Возможно подойдет для сайта любителей животных. Нужно выбрать все фото с кошками или собаками. Неплохо, но долго.

asirra

Ironclad captcha
Яркий пример перебора с замудренностью).

Ironclad captcha

Confident captcha
Приятная на вид каптча, но достаточно медленная.

Confident captcha

Simple captcha
Действительно простая капча в виде jquery плагина.

Simple captcha

Капча с действиями

Ajax fancy captcha
Простая и симпатичная капча с перетягиванием картинки.

Ajax fancy captcha

Drag captcha
Не самая удобная, но симпатичная капча с расстановкой букв в алфавитном порядке.

Drag captcha

Библиотека МФТИ
Не совсем капча, т.к. фильтрует не только и не столько роботов, сколько тех, кто не в теме).

Библиотека МФТИ

Итого

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

Невидимая капча

Невидимой капчей можно назвать тест на человечность, который не требует от пользователя никаких специальных действий, а анализирует отклонения от нормального поведения человека для идентификации спам ботов. Конечно, данный метод достаточно легко обходится при прямой атаке, но эфективен против обычного спама. Так как можно определить бота?

  • Наиболе простой, но при этом действенный способ — использование скрытых полей. Метод заключается в том, что многие спам-боты заполняют все поля форм с характерными названиями. Если создать поле с названием name, скрыть его с помощью CSS и проверять на сервере его значение, то можно отсеять значительную часть спама.
  • Время заполнения формы — еще один признак бота. Очевидно, что пользователь не сможет просмотреть статью и оставить комментарий за 1-5 секунд.
  • Вычисление хеша. Скрипт вычисляет хеш всех полей формы и помещает его в скрытое поле, скрипт на сервере проверяет значение хеша. Данный метод позволит отсечь спам от ботов, которые не обрабатывают js.
  • Другие ухищрения. Например, любители wordpress должны оценить вот этот плагин: invisible captcha. Он определяет, что комментарий оставлен человеком, если срабатывает событие onmousedown при отправке формы, т.е. было выполнено нажатие на кнопку “отправить».

Пример реализации невидимой капчи, которую использую я, можно посмотреть здесь

В любом случае перечисленных простых методов достаточно для борьбы с простыми спам-ботами. Хуже обстоит дело, если спамеры полностью симулируют поведение человека через управляемый браузер.

Другие методы

Статья и так получилась достаточно объемной, поэтому тут лишь упомяну, что для борьбы со спамом может сослужить хорошую службу антиспам-фильтр. Это может быть, как самостоятельный скрипт, так и сервис. Наиболее известным из таковых является Akismet. Основной недостаток — возможность пометки нормальных комментариев, как спам. Для обнаружения таких комментарием придется просматривать большое количество спама, но можно облегчить модерацию, если совместить превентивные меры (капча) и последующее использование спам-фильтра. Моим выбором сейчас является использование “невидимой» капчи и спам-фильтра.

oroom

oroom

меня зовут Дмитрий и я автор этого блога, в котором рассказываю о seo, создании сайтов и своем опыте на этом поприще.

7 комментариев
Показать все Самые популярные Высокий рейтинг Низкий рейтинг Добавьте свой отзыв
  1. Хотелось бы увидеть примеры того, как сделать невидимую капчу, а то я сама в js почти не разбираюсь. Или ссылки на плагины еще какие-нибудь. Мне нравится идея убрать дурацкие буковки и не разгребать потом кучу спама в комментариях.

  2. в принципе со всем согласен кроме одного — скрытое поле отсевает не часть спама, а весь спам полностью на 100%. я меня это реализовано на нескольких сайтах и ни на одном после изменения формы не было ни одного спам-коммента. как это сделать подробнее — ссылка в нике.

  3. Так это же прекрасно! Я рад, что дошел до такой мысли и не стал устанавливать тут на блоге убогую капчу.

  4. Увлекательная статья про капчу первый раз вижу такую статью =)

  5. Я так скажу, капча капче ( или каптче) рознь. Е надо ставить либо не очень сложную ( ну точно не такую как в гугле) либо вообще убрать бестолковые символы. Не думаю, что много ваших читателей спамят где-то 10 максимум 20 %

    PS как раз писал, как установить невидимую каптчу, на своем блоге.

  6. Думаю, что читатели вообще не спамят. Главное от хрумера прикрыться.

  7. Интересный пост… Про некоторые виды каптч вообще не знал. Спасибо что просветили.

Оставить ответ

SEO эксперты
Logo
Включить регистрацию в настройках - общий