В последнее время старый, но верный скрипт фотоблога Pixelpost, который мы считаем самым классным за все время создания фотоблогов, попросту сошел с ума под натиском спаммеров: сам скрипт не обновлялся уже пару лет (это нормальная ситуация, он именно с такой частотой и обновляется), и антиспам-аддоны для него тоже уже успели устареть. Стандартные решения — это Akismet и Defensio. Первый больше известен, как глючный антиспам-плагин для WordPress, второй появился уже для Pixelpost, но, даже работая по той же схеме, все равно недостатки первого обойти не смог. Проблема с ними довольно проста — вы их сначала обучаете, показывая, где находится спам, потом они уже начинают работать сами, что красиво только в теории.
Скриншот: Фотикс
На деле получается так, что, случайно скормив им нормальный комментарий (поверьте, из пары сотен случайно добавить в базу хороший очень просто), вы можете впоследствии избавиться от комментариев совсем. На моем персональном фотоблоге работает Defensio — точнее, он там установлен и включен, работает он постепенно все хуже и хуже, а вычищать комментарии спаммеров сотнями почему-то надоедает. Именно поэтому озаботился я сменой антиспам-фильтра.
Встроенные возможности антиспама в Pixelpost
Прежде всего, помните, что внутри самого скрипта есть стандартный алгоритм модерации или блокировки части комментариев, попадающий под ряд критериев: вы просто прописываете либо ключевые слова, совпадение с которыми сразу отправляет комментарии в список для премодерации, либо конкретные адреса IP или реферреры, которые вообще не позволяют публиковать комментарии. Честно говоря, я уже не помню, как заполнял две последние графы, но первая — это как Пушкин, «наше все». Работает куда лучше двух аддонов, о которых я говорил выше.
Еще одно доказательство плохой работы Defensio время от времени появляется на форуме Pixelpost — тот или иной юзер постоянно пишут, что аддон либо не фильтрует, либо фильтрует вообще все. В таких случаях стандартное решение — это уже капча, которая представляет собой последнее средство, потому что пользователей требуется просить о необходимости решать различные загадки. Понятно, что не мне одному такие мысли в голову приходят, и программисты давным давно уже все решили.
Аддоны для антиспама
Идем на форум того же Pixelpost и ищем там все, что касается аддонов капчи (чуть больше на тег «спам»). На данный момент, найдено двое:
- Текстовые загадки под названием Turing. Плагин задает смотрящим вопросы из текстового файла, который можно заполнить самому от руки, вместе с ответами, поэтому есть вариант использовать даже неординарные решения (вроде чисто фотографических, например, «какую диафрагму нужно поставить, чтобы уменьшить экспозицию на один стоп с 5.6?»). Получается, правда, что плагин нелокализованный: либо русский, либо английский, в то время как сам Pixelpost предполагает одновременное использование сразу двух языков. Это как раз мой случай, так как фотоблог у меня и на русском, и на английском. Правда, такое тоже можно решить: просто пишите вопросы через черту, англоязычные тоже поймут.
- Капча для комментариев. Довольно старый и известный плагин, недавно получивший исправление. Плагин попросту добавляет стандартную графическую капчу, которую требуется расшифровать аналитическим способом. Более надежен, нежели первый, если первый, конечно, глупо настроен. Второе преимущество — он еще и универсален, так как капча сегодня однозначно понимается большинством пользователей.
Тем не менее, я выбрал первый, потому что он мне показался более гибким. К тому же, всегда можно отказаться в пользу второго или же, в качестве дани своей параноидальной активности, подключить оба одновременно.
Выбрали Turing, настраиваем
Прежде всего, устанавливаем аддон на сайт — для чего копируем в папку /addons содержимое скачанного архива целиком папкой /_turing (особенность аддонов сейчас в том, что если они поставляются папками, то они начинаются с нижнего подчеркивания). Внутренностей там не много, так что если у вас нет доступа к FTP, можно и по одному файлу закачать через веб-интерфейс. Обратите внимание, названия менять нельзя, а то программа попросту не найдет файла с вопросами.
Второй момент — активация аддона, которую вы не раз делали, если вообще во внутренностях админки когда-то лазили. Делается все в разделе Addons панели управления. Неактивные аддоны там находятся в самом низу, там и ищите Turing test addon. Нажав напротив обоих на OFF, чтобы те поменялись на ON, вы активируете аддон. Если вы их не видите, попробуйте поискать внимательнее или удостовериться, что закачали на сервер вы все правильно.
Мы выполнили два шага из трех, теперь последний — устанавливаем код вызова в файл темы, во всех местах, где нам это требуется. Код программы вызывается внутренним кодом <TURING>, просто файла описания у автора не оказалось, а не все сегодня готовы лезть в файлы .php в поисках оного (впрочем, на странице с аддонами это упоминание тоже можно заметить). Прописать его необходимо, как правило, в файлы comment_template.html и comment_en_template.html (это шаблоны формы комментирования, находящиеся в папке шаблона вашей темы? смотрите подпапку в /templates).
В моем случае, вставка делалась в файлы image_template.html и image_en_template.html, просто оттого что вызываются комментарии именно оттуда. Куда ставить, уже ваше дело. Мне показалось, что логично сделать это после поля email — в таком случае, вопросы выползают уже после всех необходимых полей, но до клавиши Ок. Обратите внимание, что у вас файлы могут отличаться, тем более если вы пользуетесь только одноязычным скриптом.
Выглядит это примерно так, откуда следует, что локализация еще предстоит. По-моему, все логично, аккуратно, а главное, четко соответствует стилю, который вы используете на сайте — никаких тегов форматирования здесь не используется, что, в моем случае, к примеру, только преимущество.
Последний шаг — настройка вопросов, что делается редактированием файла questions.txt из папки library аддона. Это элементарно делается на самом сайте. Я решил остановиться на математическом подсчете, причем цифрами все это и вводить. Параллельно нужно, естественно, отключить Defensio, чтобы было понимание, что плагин работает.
Отдельно хочу заметить, что универсальных решений нет, ищите, ломайте голову, комментируйте здесь, а лучше, на форуме Pixelpost, чтобы люди могли знать. Удачи в сайтостроении!
Кстати, если вас не затруднит, напишите, пожалуйста, комментариев на сайт немного, чтобы проверить работоспособность плагина. Можно фигню какую-нибудь, в том числе, с неверными ответами на капчу.