logo
Противодействие интернет-ботам

1.4 Альтернативные способы защиты

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

1. Способы, требующие действий от пользователя. Существует множество идей CAPTCHA-защиты, отличающихся от классического варианта "введите код, изображенный на картинке". Их можно также разделить на две основные части: задачи, обращающиеся к "рефлексам" пользователя (на узнавание-распознавание), и задачи, обращающиеся к его логике (вопросы, задачи). Первые приятнее для пользователя, т.к. не заставляют его думать.

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

Текстовые задачи. Человеку задается вопрос или загадка, на который он должен дать ответ. Ответ нужно либо выбрать из списка, либо ввести в поле. Посколько при выборе из списка вероятность дать правильный ответ наугад довольно велика (1/n, где n - количество вариантов), обычно пользователя заставляют ответить на ряд вопросов, ибо вероятность угадать правильные ответы на несколько вопросов будет произведением вероятностей ответить на каждый из них.

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

Недостатки:

· пользователь должен быть хорошо знаком с языком, на котором задаются вопросы (а зачастую и с реалиями и менталитетом коренных носителей языка);

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

Распознавание предметов

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

Детали реализации могут варьироваться для уменьшения вероятности угадать наобум, указывать требуемые предметы могут попросить в определенном порядке и т.д.

Преимущества: пользователю может быть легче отличить кошку от собаки, чем различить, к примеру, сильно искаженные и зашумленные буквы "N" и "H". Боту же, напротив, буквы, как более простые образы, различить будет проще.

Недостатки:

· пользователю должны быть знакомы объекты и их названия;

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

2. Способы, не требующие действий от пользователя. Эти способы призваны обеспечить отсечение ботов при том, чтобы не напрягать пользователя решением зачастую утомительной задачки на "человечность".

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

Ограничение количества запросов

Ограничение количества запросов с одного IP-адреса - это довольно простой способ, малоэффективный, при достаточной подготовленности атакующего. Не секрет, что существуют компьютеры, называемые "анонимными прокси", которые позволяют делать запросы через себя, в результате чего сайт видит в качестве IP-адреса посетителя адрес этого прокси. Злоумышленник может использовать большое количество этих прокси, создавая иллюзию того, что к сайту обращаются разные люди. Ограничение через выставление посетителю cookie также малоэффективно, их легко можно стереть или вовсе игнорировать.

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

Косвенные признаки

Косвенные признаки не дают гарантии, а только увеличивают вероятность, что бот "не пройдет".

К примеру, в формах регистрации делают невидимые для пользователя поля с расчетом на то, что бот, анализируя не внешний вид страницы, а ее HTML-код, эти поля заполнит и этим выдаст себя.

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