Обновление плагина Antibot - облегчаем жизнь себе и юзерам и осложняем ботам

Раньше врачи, придумав вакцину от болезни, испытывали ее на себе. Обновленная вакцина от спам-ботов — плагин Antibot — тоже сначала была испытана на этом сайте, прежде чем я выложил новую версию в каталог. А обновления, на мой взгляд, существенные.
Новые возможности
1. Добавлен еще один метод определения ботов — по IP-адресу с помощью API сайта stopforumspam.com (спасибо inliquid за подсказку). Два других метода (под условными названиями fake и js) полностью убивать не стал, хотя метод js не рекомендуется к использованию, т.к. дает ложные срабатывания (из-за него у некоторых юзеров были проблемы при авторизации на сайте).

2. Каждый из методов проверки можно как отключить полностью, так и настроить, при обработке какого экшена их использовать. Можно также указать, что они могут использоваться при обработке POST-запросов с определенными полями.

3. Особо интересной фичей является запоминание IP-адресов ботов. Это полезно потому что, во-первых, лимит обращений к API stopforumspam.com хоть и довольно большой, но все ж конечный. Во-вторых, проверка IP из локального файла, скорее всего, будет отрабатывать быстрее, чем запрос к стороннему сайту. Наконец, самое главное — локальная проверка по IP выполняется на самой ранней стадии запуска движка, даже до загрузки ядра, и если определяется, что это IP спамера, то работа движка прекращается с ошибкой 404. И при активной спам-атаке это поможет здорово сэкономить ресурсы сервера.

Настройка плагина
По умолчанию плагин настроен так, что при каждой регистрации и авторизации выполняется проверка IP-адреса юзера по базе stopforumspam.com (другие проверки по умолчанию выключены). Если приходит подтверждение, что этот IP замечен в спаме, то он заносится в локальный список на три дня. И в течение этих трех дней любые обращения с этого IP будут отбиваться, какая бы страница сайта не запрашивалась, ему всегда будет возвращаться пустая страница с кодом 404.

Но вы можете задать, чтобы проверка выполнялась и на других страницах или при заполнении каких-то других форм на вашем сайте. Например:
$config['methods'] = array(
    // ...
    'sfs'  => array(
        'actions' => array('registration', 'login', 'profile'),
        'post'    => array('submit_register', 'submit_login'),
    ),
);
Здесь проверка по базе stopforumspam (метод sfs) будет выполняться, кроме страниц регистрации и авторизации, еще и при просмотре профиля. А если указать:
'actions' => array('*'),
то проверка по базе stopforumspam будет выполняться вообще при отработке любой страницы сайта.

Если вы решили, что проверку надо выполнять и при публикации статей (а именно — при отправке формы), то можно добавить в параметр post название HTML-кнопки, по клику на которую это происходит:
'post' => array('submit_register', 'submit_login', 'submit_topic_publish'),Теперь проверка будет выполняться и в этом случае.

Но важно понимать, что это речь шла о проверке удаленной — через API сайта stopforumspam.com. Проверка IP по локальному списку (если она включена) выполняется всегда, независимо от того, какая страница запрашивается. И эта проверка настраивается так:
$config['block_ip'] = array(
    'enable' => true,         // true - локальная проверка включена, false - выключена
    'period' => 'P3D',        // как долго хранить IP в локальном списке блокированных адресов
    'file' => 'spam_ip.dat',  // имя файла, в котором хранятся блокированные IP-адреса
    'log' => false,           // вести ли лог проверки IP-адресов (не рекомендуется держать этот параметр
                              // включенным постоянно, только во время тестов и каких-то особых проверок)
);
Несколько слов и параметре period. Он может задаваться:

1) в секундах: 3600 или 60*60*1
2) по стандарту ISO 8601: P3D — три дня, P2M15D — 2 месяца и 15 дней, PT12H — 12 часов и т.д. (полный формат — PnYnMnDTnHnMnS).
3) а можно поставить просто «звездочку», вот так — «*», и это будет означать, что IP-адрес хранится бессрочно.

Вроде, ключевые моменты настройки объяснил. Теперь можно скачать и сам плагин.

ВАЖНО: Для работы этой версии плагина нужна и обновленная версия движка — 1.0.6, не упускайте это из виду!

Похожие статьи


10 комментариев

0
Вадим, а email не сверяется? API насколько я понял дает возможность и IP и email проверять по базе.
0
Нет, в нынешней версии сверки емейла нет. Проверка по IP позволяет проверять юзера в любом экшене и на любом этапе отработки. А емейл мы получаем только при регистрации. Посмотрю, если будет необходимо, то можно будет и проверку по емейл добавить
0
Получается проверка будет вообще при любом действии а не только при регистрации?
0
Начал было отвечать в комменте, но понял, что подобные вопросы у многих могут быть, поэтому дополнил статью информацией по настройкам. Но если что-то осталось неясным — отвечу
0
Для работы этой версии плагина нужна и обновленная версия движка — 1.0.6
Так вроде крайняя 1.0.5?
0
1.0.6. Рассылка с GitHub приходит.
И на главной altocms.ru/homepage/main/ написана последняя версия.
0
Понял, спасибо. Посмотрел на эту надпись
0
Скачал последнюю версию с гитхаба altocms 1.0.7 и скачал antibot-1.1.1.
Нажимаю кнопку активировать и ничего не происходит.
Отредактирован:
0
Извините, туплю, после распаковки плагина не поменял имя папки.
0
Вчера снова весь вечер не мог попасть на этот сайт, подозреваю что снова антибот не пустил…
antibot
Сегодня авторизовался без проблем…
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.