CAPTCHA для Drupal 6: Анти-спам Защита и Проблема Юзабилити
Итак, вы хорошо потрудились и самостоятельно либо с помощью специалистов создали свой веб-сайт. Казалось бы — вот она, тихая и спокойная жизнь счастливого владельца собственного уголка в мировой паутине! Ан нет, на самом деле поддержка и развитие сайта — не менее трудоёмкая задача, чем его запуск.
Пожалуй, главный враг всех веб-мастеров — это спам, который распространяют спам-боты. Удивительно, но порой даже весьма популярные системы управления контентом, используемые для создания сайтов (например, Drupal), не предлагают пользователям встроенной анти-спам защиты. Поэтому столь необходимый функционал приходится добавлять и настраивать самостоятельно, дабы не утонуть в море мусорных сообщений рекламного характера.
Наиболее частым решением проблемы является внедрение системы CAPTCHA (Система автоматического различия людей и ботов) — обычно это некий тест, в ходе которого от пользователя требуется ввести в специально отведённое для этого текстовое поле цифры и/или буквы с демонстрируемого изображения.
Однако, классические CAPTCHA-скрипты имеют некоторые недостатки:
- Некоторые системы генерации картинок для тестов слишком примитивны, и боты уже давно с легкостью распознают указанные на них символы.
- Обратное явление — некоторые особо старательные администраторы настраивают систему так, что в картинки вносится настолько много шума и искажений (чтобы затруднить распознавание ботами), что уже человеку бывает трудно с первого раза понять, что же там написано.
- Постоянная необходимость что-то вводить для того, чтобы отправить комментарий (к примеру) может порядком поднадоесть пользователям, в результате чего сайт будет регулярно терять часть пользователей.
Так как прикладным предметом нашего рассмотрения является именно упомянутая CMS Drupal, то перейдём к более конкретному рассмотрению лишь некоторых из доступных систем CAPTCHA для Drupal.
Встроенные средства Drupal не предусматривают защиты от спама, однако существует достаточно большое количество подключаемых модулей, способных успешно решать эту задачу.
Модуль CAPTCHA — Быстро и Слишком Просто
Первый в списке — классический и во многом ортодоксальный модуль CAPTCHA, который является базой и основой для большого количества зависимых модулей анти-спам защиты. Этот модуль реализует коренной функционал и отчасти является API-модулем, то есть добавляет CAPTCHA-тест в выбранную форму.
Тем не менее, модуль CAPCTHA имеет в себе встроенные возможности для подключения буквенно-численного и математического теста. К сожалению, как уже говорилось, большинство ботов уже давно способны решать такие задачи с высокой долей вероятности, поэтому назвать данное решение достаточным можно лишь в очень редких случаях. В ситуации прицельного "обстрела" остановить нападение спамеров он не сможет.
reCAPTCHA — Быстрее, Выше, Сильнее!
reCAPTCHA — очень популярный и распространённый тип капчи, который можно встретить на многих сайтах. Наверняка вы уже сталкивались с такими тестами, и не раз. Достойный довесок к базовому модулю CAPTCHA, можно рекомендовать его для использования в большинстве случаев, если вас устраивает сам принцип буквенного теста, используемого reCAPCTHA.
Выше были названы классические, наиболее популярные виды защиты от спама сайта в виде распространённых систем капчи. Тем не менее, из соображений удобства и юзабилити было бы весьма неплохо предложить какой-то более удобный способ различия ботов и людей, так как постоянно вводить числа или буквы с картинки — весьма и весьма надоедающее занятие.
Альтернатива CAPTCHA
Об альтернативной методике защиты от спама без использования модуля CAPTCHA читайте также в статье «Альтернатива CAPTCHA для Drupal 6».
Средствами Drupal и двух модулей сторонних разработчиков можно предложить пользователям облегчённый вариант капчи. Для этого нам понадобится:
- Собственно, любой сайт, работающий на Drupal.
- Модуль CAPCTHA.
- Модуль NotCaptcha.
Для модуля NotCaptcha дополнительно потребуется:
- Поддержка JavaScript браузером пользователя (все современные браузеры)
- Подключенный модуль PHP mcrypt на сервере хостера (скорее всего, он у вас уже подключен)
- Подключенный модуль PHP GD на сервере хостера (аналогично, скорее всего по умолчанию он доступен)
Как видно из требований модуля NotCaptcha, такой вариант подойдёт многим, но не всем, так как на данный момент пока ещё нет версии модуля NotCaptcha, работающего без JS. Однако, если ваш сайт ориентирован в подавляющем большинстве на "настольных" пользователей с современными браузерами — проблем возникнуть не должно.
NotCaptcha
Рассмотрим подробнее модуль NotCaptcha. Ключевой особенностью данного модуля является способ реализации теста "компьютер или человек?" — в отличие от других решений, здесь не нужно вглядываться в картинки, пытаясь распознать буквы или цифры, не нужно ничего вводить. Система принципиально иная — при помощи слайдеров нужно установить три вращающиеся картинки в вертикальное положение. Всё! Тест пройден.
Использование модуля NotCaptcha может нивелировать первую и вторую из названных в самом начале статьи проблем юзабилити стандартной капчи.
- Постойте! — скажете Вы. — А как же третья проблема? Как избавить пользователя от необходимости проходить тест, к примеру, перед каждой отправкой комментария?
И эта проблема может быть решена. Для этого в настройках модуля CAPTCHA есть специальная опция:
Суть: в данном блоке можно выбрать, каким образом будет вести себя CAPTCHA для каждого отдельного пользователя. Сверху вниз доступны три опции:
- Всегда проводить испытание
- Проводить испытание для каждой формы отедельно, в случае успешного ответа испытание больше не проводить (для данной формы)
- Проводить испытание единожды для всех форм, в случае правильного ответа испытание больше не проводить (для всех форм)
Таким образом, если выбрать вариант номер два, то пользователь, пожелавший оставить комментарий, должен будет лишь однажды пройти тест. После успешного прохождения он сможет оставлять комментарии без прохождения теста (т.е. получит условный статус "человек").
Стоит заметить, что использовать данную возможность стоит всё же с осторожностью, так как случайно дорвавшийся до вожделенного свободного доступа бот может обеспечить вас работой по очистке сайта от следов его бурной деятельности на продолжительное время.
Заключение
В этой заметке была рассмотрена проблема спама, недостатки типичной системы CAPTCHA и способ борьбы с ними при помощи Drupal и модуля NotCaptcha. Стоит отметить, что методики борьбы со спамом далеко не ограничиваются рассмотреными модулями, и существует их гораздо больше, чем было рассмотрено в данной статье. Другие решения будут предложены моим читателям в последующих материалах на данную тему.
Всегда помните, что пользователя не любят сложности и трудности — старайтесь достигать своих целей наиболее простым и лёгким способом.
Важное замечание: Друзья! Хочу дополнительно обратить ваше внимание, что модуль CAPTCHA, о котором шла речь в данной заметке, имеет одну неприятную особенность. Соответственно, все остальные модули, которые зависят от него и основаны на CAPTCHA API, имеют эту же "особенность". Дело в том, что Drupal не кэширует страницы с CAPTCHA! То есть любая страница, на которой находится тест CAPTCHA, не может быть кеширована средствами Drupal, а значит она будет генерироваться заново при каждом обращении, что очень сильно скажется на общей производительности сайта.
Чтобы не перегружать данный пост — подробности перенёс в отдельный материал, найти который можно по приведённой выше ссылке. Кроме того, в том же материале приведена ещё одна альтернатива стандартной СAPTCHA, во многом даже более элегантная, чем NotCaptcha.
- 4983 просмотра
- English
анука протестирую твою капчу
ха, так вот ты пишешь про НОТкапчу а сам поставил "галочку"... так что же лучше
Статья довольно-таки пожилая и с момента написания не обновлялась. Естественно, время не стоит на месте — сейчас есть варианты получше. "Галочка" — это модуль Simple Anti-Spam, могу рекомендовать его, работает шикарно.
А какой модуль комментариев используется на этом сайте?