Сидел вот и решил перевести статью The Best Ways to Fight Spam by Justin Shreve. В ней обсуждаются достоинства и недостатки таких методов защиты от спама, как список запрещённых слов, CAPTCHA, и понятно показывается, как использовать Akismet на своём сайте. Что мне сейчас и надо. Поэтому привожу перевод только части про Akismet.
Akismet — служба для борьбы со спамом от создателей 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 и для вас:
- Invision Power Board
- phpBB
- Drupal
- vBulletin
- Expression Engine
- а в WordPress плагин Akismet есть по умолчанию
Пользуйтесь!
Читал неоднократные нарекания по работе Акисмета. Для меня всегда капчи было достаточно.
Я не так давно общался с поддержкой акисмета
по почте.
А сам пробывал использовать Akismet? На сколько быстро все это работает?
Dmitry, еще нет. не было времени
Уведомление: некий блог » Архив блога » Akismet на любой сайт
А кроме Akismeta есть еще что нибудь подобное? Или это самое лучшее что есть?
подобного Akismet не встречал. другие способы борьбы со спамом не предполагают использование единой базы для проверки комментария на спам
Без акисмета вобще не жизнь. Капча конечно вариант но с акисметом проще.
Что с ним что без него можно жить припеваючи , только нужно работать головой
«…без него можно жить припеваючи»
Да, и каждый день вручную вывозить на свалку спам тачками?!
Угу. выгребать спам в ручную
Попробую реализовать, спасибо!
спасибо, не знал что акисмет можно прикручивать к другим движкам
Спасибо за перевод! Надо себе в блог попробывать поставить…
Money, вам надо его не ставить, а только включить — он всегда есть в WordPress. для этого нужен API key. в посте написано, где и как его получить
Использование совместно с Akismet простейшей капчи (типа – Я не спаммер) позволяет отсечь много спама, рассылаемого автоматизированно с помощью программ рассылки.
да, надо бы поставить такую простую
Не понял, а чем отличается коммерческое использование от некоммерческого?
че нить типа на сайтах, созданных для получения прибыли, магазинах и все такое
А то есть просто заработок на сайте этого не касается.
акисмет крут… 6000 каментов порезал.
А капча еще круче, если не взломанная то, 6000*6000 прорежет
Уведомление: Браузер-маникюр | Eat art
Уведомление: Использование Akismet для борьбы со спамом на разных сайтах | Wordpress Tutorials