Новые возможности
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 комментариев
И на главной altocms.ru/homepage/main/ написана последняя версия.
Нажимаю кнопку активировать и ничего не происходит.
Сегодня авторизовался без проблем…