Защита от спама форума SMF 1.1.x
SMF-движок один из самых любимых движков спамеров. Почему - сказать трудно, наверно, из-за дефолтных настроек двига, при которых каптча там очень лёгкая для распознавания автоматом, а также поставленная по умолчанию мгновенная регистрация юзера (без email подтверждения). И беда в том, что штатными средствами SMF тут не обойтись :(
Посмотрите на эту каптчу, устанавливаемую при создании нового форума:
Разные цвета букв хороши для удаления шума, небольшой наклон легко повернуть. Сделав её черно-белой, можно с лёгкостью определить символы. Эта каптча распознаётся автоматом.
Вот пример более сложной каптчи, которую можно выбрать в админке SMF - она там называется “hight (Высокая сложность)”.
Действительно, эту каптчу распознать заметно сложнее - разные шрифты, инвертирование, дополнительные линии для увеличения общего шума. Не знаю, насколько точно можно расшифровать эту каптчу, но думаю, если специально под неё заточить распознавание, то можно добиться 3-10% пробива. Собственно, это я и наблюдал на одном из своих форумов, где каждый день сваливалось по 3-8 сообщений спама.
Давайте посмотрим, что нам предлагает раздел модификаций SMF. Негусто, учитывая то, что проблема острая, а актуальных модов (не старше хотя бы года после последнего обновления) всего три:
Вторая, с часами - какая-то хрень, мне не понравилось, третья - это рекаптча, известная штука. Захотелось мне попробовать первый мод - AVVM :) Поставил - и нарадоваться не мог - он защищает не только от спама при постинге, но и от спама по личкам! Однако, чрз некоторое время начал получать недовольные отзывы от пользователей форума - оказывается, эта каптча не всегда правильно генерит картинку - иногда букв не хватает, т.е., требует для ввода пять символов, а на картинке - четыре. Парсинг оф.форума ничего не дал. Пришлось мне от неё отказаться :(
Поставил reCAPTCHA. Тоже хорошая каптча:
Правда, она только заменяет стандартную у SMF, и не встраивается при отправке ЛС. И ещё, если у вас форум на русском, то придётся немного поработать руками :), т.к. мод не русифицирован. На ней и остановился пока.
Окей, каптча поставлена, но спам всё равно проскакивает! Как же так? Ответ достаточно прост - это “китайцы”. Дело в том, что есть сервисы, которые позволяют распознавать каптчи в ручном режиме. То есть, каптчу распознают живые люди, которые зарабатывают тем, что сидят и непрерывно вбивают каптчи. Стоимость такой работы очень низка, поэтому, обычно этим занимаются китайцы или индусы. И тут уже никакая (приемлимая для посетителей) каптча не спасёт - распознаваемость такого метода 90%.
Поэтому, что еще можно сделать для усиления защиты от спама:
-
поставить подтверждение реги по мылу (members (пользователи) -> registration (регистрация) -> settings (настройки) -> Method of registration employed for new members (Способ регистрации новых пользователей) поставить “Member Activation” (активация пользователя)).
-
создать дополнительные поля при регистрации (мод Custom Profile Field Mod позволяет добавить произвольные поля при регистрации и соответствующие условия их проверки).
-
установить небольшой хак в forum/sources/post.php, перед комментарием
// Check the subject and message.
Добавить код
if (substr_count(strtoupper($_POST['message']), '[URL]') > 1) {
if ($user_info['posts'] < 5 || $user_info['total_time_logged_in'] > 60 || $user_info['is_guest']) {
$post_errors[] = 'too_many_links';
}
}
А также добавить в дефолтную тему в языковые файлы Errors.english.php и Errors.russian-utf8.php описание ошибки, которое будет выводиться:
$txt['error_too_many_links'] = 'The message contains too many external links.';
$txt['error_too_many_links'] = 'В сообщении слишком много внешних ссылок.';
Чего делает этот хак: он выводит вышенаписанную ошибку при постинге в сообщении более одной ссылки следующим группам лиц :)
- гостям
- пользователям, у которых менее 5 сообщений
- пользователям, которые находятся на форуме меньше одной минуты.
Код довольно простой, я думаю, сами разберётесь и настроите под свои нужды. (кстати, идея не моя, а стырена отседова, правда, там с ошибками, я исправил и доработал. Спасибо мне :))
PS: А чего в итоге выбрал я? Я поставил рекаптчу и воспользовался третьим советом (со вставкой кода), т.к. не хотелось отказываться от возможности постинга гостями без регистрации.
Soon the end of the world, scientists have confirmed this fact ((details here - [b]tinyurl.com/d65gwa4 [/b]
Skoro konec sveta, ychenie dokazali, vse podrobnosti tyt -[b] tinyurl.com/d65gwa4[/b]
Спасибо, хотелось бы инструкций по установке рекапчи
Спасибо за стать, буду защищать.... а то эти спамеры достали
Здравствуйте! Подскажите где реально получить срочно ссуду?
Спасибо за информацию. У самого форум на SMF. Будем защищаться.