I live ExBB and CMS Limbo! » Форумы и сайты » ExBB Community » Простейший спамфильтр для гостей

Страниц (1): [1]
 

1. NordWest - 1 июня 2013 — 16:00 - перейти к сообщению
Задача такая. Не хочется закрывать для некоторых разделов возможность постить без регистрации, но при этом нужно отсеять большинство ботов.
Реализация видится такая. Боты любят в свои посты втыкать ссылки, а потому будем считать любой пост гостя со ссылками - постом бота.

Обработка данных ведется в файле post.php
В файле fm.class.php - объявлены основные функции...
2. NordWest - 1 июня 2013 — 17:22 - перейти к сообщению
Попробую пока так...

В post.php ищем код

code:
#Check double clicking :)
if ($topic[$last_key]['post'] == $fm->input['inpost']) {
$fm->_FcloseAll();
$fm->_Message($fm->LANG['ReplyCreate'],$fm->LANG['ReplySavedAlredy']);
}


и заменяем на

code:
#Check double clicking :)
if ($topic[$last_key]['post'] == $fm->input['inpost']) {
$fm->_FcloseAll();
$fm->_Message($fm->LANG['ReplyCreate'],$fm->LANG['ReplySavedAlredy']);
}

if ($fm->user['id'] == 0)
{
if (strpos($fm->input['inpost'],'http'))
{
$fm->_FcloseAll();
$fm->_WriteLog('Блокирован пост спамбота в теме '.$topicname);
$fm->_Message($fm->LANG['ReplyCreate'],$fm->LANG['ReplyAddedOk'], 'topic.php?forum='.$forum_id.'&topic='.$topic_id.'&postid='.$last_key.'#'.$last_key);
}
}


Блокирует запись в базу, если в сообщении гостя присутствует фраза http
Данные о блокировке записываются в лог форума.
3. NordWest - 1 июня 2013 — 17:25 - перейти к сообщению
Если будет нормально работать попробую добавить управление в админку и сделать возможным не блокировать пост, а переносить в мусорку.
4. NordWest - 1 июня 2013 — 17:40 - перейти к сообщению
Поставил на этот форум - вроде работает.
Понаблюдаю за статистикой...
5. NordWest - 14 сентября 2013 — 07:16 - перейти к сообщению
Сегодня чистил форум от необычного бота. Использует ссылки вида [url=][/url].
Будет время - заблокирую и эту возможность.
6. NordWest - 22 сентября 2013 — 16:10 - перейти к сообщению
Заменил

code:
if (strpos($fm->input["inpost"],"http"))


кодом

code:
if (strpos($fm->input['inpost'],'http') || strpos($fm->input['inpost'],'[url') === true)


т.к. боты снова начали прорываться.
7. NordWest - 25 сентября 2013 — 23:58 - перейти к сообщению
Попробовал чуть другую тактику. Создал топик-свалку для ботов и вместо блокировки буду их туда перенаправлять. Улыбка
(Добавление)
Ага, попробовал... Чуть форум не обрушил. Боты стали создавать несуществующие темы... Не понял
Еле откатил всё назад. Хм

Powered by ExBB v1.1.180311