Ars Longa, Vita Brevis

Очередной плагин для WordPress для борьбы со спамом

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

На Wordpress.org есть примерно с десяток плагинов для отсеивания спам-ботов, но использование чужого кода — это не наш метод, поэтому коллекция плагинов пополняется еще одним :-)

Помимо генерации случайного изображения, я воспользовался методом, описанным у Максима Покровского, заключающимся в создании элемента <input> с установленной через CSS visibility: hidden: спам-бот заполнит этот <input>, а пользователь — нет.

Я пошёл несколько дальше, и не стал полагаться на статически заданное имя поля. Вместо этого поле стало динамическим (в том смысле, что имя поля генерируется случайным образом), что может служить дополнительной защитой.

CAPTCHA защищает форму регистрации и форму отправки комментария; в случае с комментарием, изображение с проверочным кодом для зарегистрированного пользователя не показывается.

Отмечу, что я сознательно смешал два метода — проверочный код и пустое текстовое поле — просто мне очень интересно, каков процент несрабатывания у пустого текстового поля; а проверочный код "защищает" мою лень: если уж спамер догадался не заполнять пустое поле, то пусть догадается, что нарисовано на изображении и избавит меня от необходимости чистить комментарии.

Скачать плагин SJCaptcha for WordPress.

Из плюсов: код плагина — всего 151 строка (включая пустые строки и комментарии).

Из минусов: все настройки зашиты в исходном коде. Но для версии 0.01 сойдёт :-)

PS: в css-файл используемой темы нужно добавить три строчки:

[-]
View Code CSS
.pvc {
    display: none;
}
Добавить в закладки
  • del.ici.ous
  • Digg
  • Furl
  • Google
  • Simpy
  • Spurl
  • <a rel="external nofollow" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fblog.sjinks.org.ua%2Fwordpress%2Fplugins%2F74-sick-and-tired-of-spamers-yet-another-captcha-for-wordpress%2F&t=%D0%A1%D0%BF%D0%B0%D0%BC%D0%B5%D1%80%D1%8B+%D0%BF%D1%80%D0%BE%D1%81%D