Был в творческом отпуске (в смысле – в belinternet.ru не постил ничего) целый месяц. За это время, естественно, накопилось сотни две спамерских комментариев. Забыл я совсем про них, никакой защиты не поставил. Надо исправлятся.
Наиболее популярное в интернетах решение – влепить капчу (captcha), хитрую картинку с символами. Но в нашем несовершенном мире “популярное” давно уже не значит “лучшее”. Я сам терпеть не могу капчу и другим ее подсовывать не собираюсь. Но делать что-то определенно надо.
Спамеры делятся на две категории – умные и глупые автоматические и ручные. Первые используют для рассылки комментариев хитрые программы. Этих отсеять несложно – достаточно ввести в форму отсылки коментария дополнительное поле, которое можно правильно заполнить только посмотрев “человеческим взглядом” на сайт. Можно применить капчу, но есть способ “гуманнее”.
На этом сайте я пока поставил просто поле типа SELECT где нужно выбрать свое местоположение (страну). Такой селектор и честных пользователей не напрягает (в отличие от той же каптчи) и реализован максимально просто. Всего понадобилось подправить два вордпрессовских файлика comments.php (в текущей теме) и wp-comments-post.php (в корневом разделе). В первом файлике добавляем вывод элемента формы (SELECT), во втором – ставим проверку на правильное значение этого селекта. Код пока не привожу по нижеследующим причинам.
Как показало двухдневное наблюдение за работой новой формы комментариев, автоматический спам практически сошел на нет. “Практически” – потому что пару “ботов” все-таки проскочило. Это, вероятно, самые хитрые боты, наугад выбирающие значения селекта и поэтому проскакивающие мою импровизированную защиту. Поэтому следующим этапом будет замена селекта на пару чекбоксов, один из которых должен быть отмечен, а второй – нет. Хорошо себя показывает и математическая капча (“сложите два числа”). Еще много всяких идей по защите от автоспамилок, буду их пробовать (и выкладывать сюда в belinternet.ru) по мере эволюционирования спам-технологий.
Вторую категорию спамеров – школьников, набивающих коментарии вручную, обезвредить еще проще. Надо просто убрать поле для ссылки с имени коментатора и запретить все прочие ссылки в теле коментария. Комментарии без ссылок спамерам не нужны. Честные пользователи – при желании оставить ссылочку – могут напечатать ее простым текстом. Кому интересно будет – скопирует ссылку и перейдет на искомый сайт. Да, способ жесткий, но время такое – слабых духом спамеры съедят с потрохами.
Можно, конечно, сутками сидеть и сортировать все комментарии, удаляя спамерские. Но это способ для тех, у кого масса лишнего времени или есть лишние денежки на оплату работы специально обученного “блого-модератора”.
Кто-то спросит: “а почему бы не поставить готовый плагин антиспама, благо для вордпресса их куча?”. А потому, что все массовые решения обязательно рано или поздно будут “взломаны” и алгоритм их пробивки будет добавлен в хитрые спамерские программки. А свое “персональное” решение и надежнее, и проще в реализации. Никакого тебе лишнего плагина, пытающего периодически обновится, никакого тяжелого JavaScript. Это тоже немаловажно.
UPD: Поле с выбором страны проработало до 20-го августа, за два месяца пропустило около 30 спам-комментариев. Поэтому решил попробовать поле с вопросом-примером (типа “сколько будет дважды два”). Ждем результатов.