Использование Akismet для борьбы со спамом на разных сайтах

Оригинал статьи на английском:  The Best Ways to Fight Spam by Justin Shreve. Хотя об Akismet в WordPress сказать особо нечего. Надо лишь активировать плагин и ввести API-key. А в статье речь пойдет об интеграции Akismet в другие движки или на свой самописный сайт. То есть Akismet собирает спам не только с блогов на WP, но и с многих других, что расширяет охват.

AkismetAkismet — служба для борьбы со спамом от создателей WordPress. Главное преимущество её в том, что борьба со спамом коллективная.

Akismet может быть интегрирован в любой проект. Для этого вам требуется получить API-key для доступа к интерфейсу. Получить его можно бесплатно для некоммерческого использования, или за $5 в месяц для коммерческого — не так уж и много. Есть много плагинов для работы с Akismet, ссылки на которые даны ниже. А пока посмотрим, как подключить Akismet к собственному проекту.

Добавление проверки коммнетариев на спам от Akismet на вашем сайте

Чтобы получить ключ вам необходимо зарегистрироваться наhttp://wordpress.com/signup/. API-key не привязан ни к какому конкретному сайту, и вы сможете использовать там, где вам понадобиться.

После регистрации и получения ключа вам потребуется скачать и распаковать себе на сервер PHP5Akismet.0.4.zip (24 КБ) от Achingbrain. По сути вам понадобится только один файл, другие файлы и документация — не нужны для работы.

Итак, у вас есть проект, где пользователи оставляют комментарии, форум или блог. И все у вас уже работает. Теперь нам надо прикрутить к этому Akismet. Подключим нужный файл:

include «path/to/file/Akismet.class.php»;

И запустим, используя адрес нашего сайта и уже полученный ключ:

$akismet = new Akismet («http://mysite.ru», «API-key»); //вставьте ваш API-key

Теперь Akismet должен получить данные, которые нужно проверить. Здесь приведены конкретные примеры, но вам надо будет заменить имя, e-mail, url и комментарий на переменные, которые вы реально получаете при отправке комментария. Akismet сравнит этот комментарий с более чем  7 976 786 200 (на момент написания, а это 87% от всех комментариев) спамных комментариев в централизованной базе и выдаст результат, является ли спамом этот комментарий.

$akismet-> setCommentAuthor («Иванов Иван»);
$akismet-> setCommentAuthorEmail («email@test.com»);
$akismet-> setCommentAuthorURL («http://othersite.ru»);
$akismet-> setCommentType («forums»);
$akismet-> setCommentContent («Я думаю, эта тема интересна многим людям, спасибо.»);

Все названия функций имеют говорящие названия. Но стоит заострить внимание на функции setCommentType. Эта функция помогает Akismet определить, на какого рода сайте был оставлен комментарий: социальная сеть, новостной сайт типа news2.ru, форум или блог. Вы можете добавлять любой аргумент, какой хотите. Например, у вас есть wiki-сайт — пишите «wiki», у вас блог — пишите «blog».

Далее используем функцию isCommentSpam. Именно эта функция и связывает нас с базой Akismet. Она возвращает true, если комментарий является спамом и false, если не является.

if ($akismet-> isCommentSpam ())
{
// Тут мы что-то делаем со спамом. Сохраняем для перепроверки или сразу стираем к чертям
}
else
{
// А тут хороший комментарий сохраняем к себе в БД
}

Все, именно так просто, как эти несколько строчек кода. Вы присоединились к борьбе со спамом. Кроме этого, вы также можете использовать CAPTCHA, или другой способ, если захотите, для защиты комментариев от спама. База спама Akismet постоянно растет, но иногда по ошибке нормальный комментарий определяется как спам и наоборот. Для коррекции таких ошибок есть ещё несколько функций.

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

$akismet-> submitHam ();

Этой функцией вы сообщите Akismet, что комментарий, определённый как спам, на самом деле в порядке.

$akismet-> submitSpam ();

А таким образом вы сообщите о спаме, информация о нем добавится в базу, и в следующий раз такой комментарий не будет одобрен.

Другие библиотеки

PHP5 используют не все. Но и для других языков программирования существуют библиотеки Akismet:

Все они могут быть легко интегрированы в ваши проекты, как было показано.

Популярные движки

Если вы используете для сайта или форума распространённый движок, найдется плагин Akismet и для вас:

Пользуйтесь!

Запись опубликована в рубрике Плагины с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


три + = 5

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>