Борьба со спамом в комментариях и формах обратной связи

  • 26.08.2011

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

На самописных сайтах я сначала использовал простенькую защиту с помощью javascript - js-код делает в форму document.write('<input type="hidden">') с ключиком, который потом обработчик формы проверяет. Много где работало и помогало, но иногда переставало работать - видимо приходили умные боты, которые понимали javascript...

Потом стал использовать reCaptcha - она работает, и доверие к ней большое - все-таки продукт связанный с Google. Но это издевательство над дизайном (слишком много места на странице занимает) и пользователями (слишком сложно разобрать какие ключевые слова она требует ввести).

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

На 1C-Битрикс использовал его встроенную captcha - на многих сайтах проверено - спамерские роботы не достают.

Самые большие проблемы были у меня с Drupal - точнее даже вот конкретно с этим сайтом, на котором эта заметка. Когда только сделал его - ничего не поставил. Достаточно быстро пришли боты, пришлось суетиться, искать чем защищаться - нашел модуль captcha. Неплохо работал долгое время и выглядел красиво - я выбрал тот вариант, когда надо было не символы с картинки вводить, а ответ на простенький арифметический пример, типа "1 + 3 = ".

Но в прошлом году, в октябре, пришли боты, которые обошли этот модуль - стали публиковать по сотне комментариев со спамом в день. Я сразу не увидел, а когда заглянул, то комментариев было уже больше тысячи. Я включил премодерацию и пытался их удалять, но в родной админке Drupal это можно делать за раз только по 50 штук и вручную на это уходило много времени. Пришлось отключить вообще возможность комментирования. Тем временем в админке уже накопилось тысяч 10 комментариев со спамом, из них почти половина была видна и в публичной части. В общем, можно сказать, ботам удалось убить этот сайт.

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

Вторая проблема - система требовала обновления. Причем 5-я версия, которая стояла, была снята с поддержки и нужно было апгредиться до 6-й. Апргрейдился, теперь нужно поставить защиту. К предыдущей и доверия нет - уже пропустила ботов - и статус разработки у нее какой-то отличный от Actively maintained и Under active development. У reCAPTCHA немногим лучше. Да и надоели уже эти капчи.

В общем, теперь новая надежда - веб-сервис фильтрации спама Mollom. Посмотрим как будет работать.

PS Вот за что не люблю Drupal и прочий open-source, так это за трудности с поддержкой. В том же Битриксе для обновления нажал одну кнопку и наслаждаешься, а здесь постоянные проблемы какие-то, куча вариантов, все приходится пробовать, испытывать, устанавливать, удалять, снова устанавливать. Вроде все настроишь, заработает - так через полгода опять что-нибудь обновления потребует и обновить это будет нельзя, пока не обновишь что-нибудь третье, а что-нибудь четвертое перестанет поддерживаться и работать - замену ему ищи - и т.д.