Страница 1 из 27
[ABD] Stop Advertisement bots v.2
Добавлено: 07.08.2006 9:43
Xpert
Тема закрыта в связи с выходом третьей версии данного мода, которая единственная на сегодняшний момент из всех версий обеспечивает достаточную защиту от спам-роботов. Подробнее смотрите Stop Advertisement Bots v.3
Продолжение одноименного мода
первой версии. Теперь используется новый принцип - имена полей отличаются от обычных и при поытке передать данные по старому имени - это бот. Как и прежде, есть отсылка писем. Кроме того, добавился счетчик остановленных ботов в админке.
FAQ
Q: Я поставил мод, попробовал зарегистрироваться и меня приняли за бота. Где я мог ошибиться?
A: Ошиблись вы в том, что посчитали некоторые части инструкции недостойными своего внимания. Внимательно прочтите раздел Author Notes.
Добавлено: 07.08.2006 11:01
Shestak
С первой версией будет конфликтовать? Нужно ли будет удалять первую версию?
Добавлено: 07.08.2006 11:25
Xpert
Не изучал вопрос. Лучше удалить.
Добавлено: 07.08.2006 12:26
Shestak
Окей, как прорвется через прошлую версию мода бот, сразу попробую поставить эту версию. Кстати парочку проходило ботов через прошлую версию. Они просто не указывали поле сайта, и кстати вводили дату ДРа(у меня обязательна она).
П.С.: Спасибо за новую версию мода.
Добавлено: 07.08.2006 12:27
VovikV
По моему, нужно брать не дату запуска форума, а символы генерируемые случайным образом.
И к имени не просто добавлять символы, а как то перемешивать, или совсем заменять другими иначе допишут в скрипт спамбота регулярное выражение которое например просто отсекает от оригинальных значений все лишнее спереди и сзади.
Кроме того, по моему, зря сделали, что поле сайт сразу видно при регистрации.
Лучше бы оставили как в предыдущей версии. Ведь спамбот, даже умеющий загрузить страничку регистрации, отсечь имя от мусора и отправить запрос, это одно, а вот умеющий после всего этого, опять же повторно зайти на форум и дозаполнить поля это уже посложнее и вероятность, что будут заморачиваться с этим, меньше.
З.ы. Хорошо, что после ухода не забрасываете форум.
Добавлено: 07.08.2006 23:05
Xpert
Можно и случайным, главное - идея... Порядка 3000 ботов уже посчитали ее неперевариваемой. Поля вернул т.к. мод имхо не должен создавать никаких неудобств для пользователя.
Дата запуска форума хотя и не совсем случайная величина, но она нигде не светится извне. Поскольку она всегда присуствует в стандартном дистрибутиве, она и была взята. Если величина будет случайной, то ее надо передавать через форму. Это не есть гуд. Другие варианты - например SID.
Добавлено: 08.08.2006 5:47
VovikV
Xpert писал(а):Можно и случайным, главное - идея... Порядка 3000 ботов уже посчитали ее неперевариваемой. Поля вернул т.к. мод имхо не должен создавать никаких неудобств для пользователя.
Дата запуска форума хотя и не совсем случайная величина, но она нигде не светится извне. Поскольку она всегда присуствует в стандартном дистрибутиве, она и была взята. Если величина будет случайной, то ее надо передавать через форму. Это не есть гуд. Другие варианты - например SID.
Спасибо за разъяснения
Как будет время поставлю эту версию и попробую сохранить старую. Как аддон бы тогда выложили скрытия поля сайт, думаю многие им воспользуются. Я так просто запал на эту вашу идею, буду и дальше использовать ее.
Добавлено: 10.08.2006 15:37
ZPT
У меня боты адреса сайтов пишут в Интересах и Роде занятий. Может быть стоит отсекать при регистрации "http://"?
Добавлено: 17.08.2006 2:03
Xpert
Поставьте мод и все... какая разница что пишут, надо вообще не давать им регистрироваться.
Немного моей статистики
Было зафиксировано 3049 попыток регистрации рекламных ботов
Добавлено спустя 5 часов 44 минуты 39 секунд:
Добавочка - ставится на основной мод, принципы те же что и при регистрации, только на сей раз не даем размещать сообщения.
Добавлено: 17.08.2006 10:37
automan
Xpert писал(а):Добавочка - ставится на основной мод, принципы те же что и при регистрации, только на сей раз не даем размещать сообщения.
не понял, так если бот не сможет зарегистрироваться, так как он сможет разместить сообщение??
или это для тех у кого форум для гостей открыт ?
Добавлено: 17.08.2006 10:53
Xpert
automan писал(а):или это для тех у кого форум для гостей открыт ?
Именно.
Добавлено: 18.08.2006 13:39
Rusic
Код: Выделить всё
#
#-----[ FIND ]------------------------------------------
#
$username = ( !empty($HTTP_POST_VARS['username']) ) ? phpbb_clean_username($HTTP_POST_VARS['username']) : '';
Версия форума 2.0.21 в includes/usercp_register.php нет такой строчки. Что подскажите ? Предудущего мода небыло.
Добавлено: 23.08.2006 1:20
Extremator
Какая-то фигня, всех принимает за ботов.
Старая версия пашет, а эта никак.
Добавлено: 23.08.2006 8:31
Xpert
Rusic
Значит не 2.0.21. В 2.0.21 она есть. Или некорректрое обновление.
Добавлено: 23.08.2006 18:15
Rusic
Xpert
Хм... может я чего то недопонял, но в изменених касающиеся 2.0.20 на 2.0.21 написано:
Код: Выделить всё
#
#-----[ OPEN ]---------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND ]---------------------------------------------
# Line 989
$code = strtoupper(str_replace('0', 'o', substr($code, 6)));
#
#-----[ REPLACE WITH ]---------------------------------------------
#
$code = substr(str_replace('0', 'Z', strtoupper(base_convert($code, 16, 35))), 2, 6);
#
#-----[ FIND ]---------------------------------------------
# Line 1002
$confirm_image = (@extension_loaded('zlib')) ? '<img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id") . '" alt="" title="" />' : '<img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id&c=1") . '" alt="" title="" /><img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id&c=2") . '" alt="" title="" /><img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id&c=3") . '" alt="" title="" /><img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id&c=4") . '" alt="" title="" /><img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id&c=5") . '" alt="" title="" /><img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id&c=6") . '" alt="" title="" />';
#
#-----[ REPLACE WITH ]---------------------------------------------
#
$confirm_image = '<img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id") . '" alt="" title="" />';
#
#-----[ OPEN ]---------------------------------------------
#
login.php
#
#-----[ FIND ]---------------------------------------------
# Line 116
$redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : '';
$redirect = str_replace('?', '&', $redirect);
if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r"))
{
message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.');
}
$template->assign_vars(array(
'META' => "<meta http-equiv=\"refresh\" content=\"3;url=login.$phpEx?redirect=$redirect\">")
);
$message = $lang['Error_login'] . '<br /><br />' . sprintf($lang['Click_return_login'], "<a href=\"login.$phpEx?redirect=$redirect\">", '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
}
#
#-----[ REPLACE WITH ]---------------------------------------------
#
}
$redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : '';
$redirect = str_replace('?', '&', $redirect);
if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r"))
{
message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.');
}
$template->assign_vars(array(
'META' => "<meta http-equiv=\"refresh\" content=\"3;url=login.$phpEx?redirect=$redirect\">")
);
$message = $lang['Error_login'] . '<br /><br />' . sprintf($lang['Click_return_login'], "<a href=\"login.$phpEx?redirect=$redirect\">", '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
И ничего более. Такой строки нет. Правлю код только руками.
ps. Если я что то недопонял прошу прощения, но мнебы мод пригадился.