Сайт Романа ПарпалакаЗаметкиТехнологииВеб-разработкаБорьба с поисковым спамом

Борьба с поисковым спамом

12 декабря 2009 года

Владелец любого сайта с сообщениями или комментариями посетителей сталкивается с поисковым спамом: неуместными ссылками на посторонние ресурсы. Я расскажу о том, как мы боролись на форумах PunBB со спамом в подписях.

Для начала напомню несколько общеизвестных фактов. Во-первых, если у вас есть более-менее посещаемый ресурс, вы спокойно можете запретить анонимные комментарии и требовать регистрацию пользователей. Во-вторых, при регистрации нужно обязательно проверять электронную почту (присылать ссылку для активации аккаунта). Таким образом, почти наверняка зарегистрированный пользователь, написавший пост, не является спамерским ботом.

Некоторое время назад мы столкнулись со спамом в подписях. Это выглядело так. Регистрируется новый пользователь. Пишет тупой пост («У меня тоже эта проблема» или «Мне это помогло»). В подписи указывает ссылки на какие-то сайты. Подпись на форуме отображается в профиле и автоматически добавляется к каждому посту.

Мы стали банить таких пользователей по IP. Спамеров это не остановило. Видимо, они находили всё новые и новые прокси-серверы или использовали зараженные компьютеры обычных пользователей, затем регистрировались под новыми именами и продолжали спамить.

В настройках PunBB можно отключить подписи. Но идти на поводу у спамеров — не самое хорошее решение. PunBB обладает мощной системой расширений. У нас есть расширение pun_antispam, добавляющее картинку с кодом при регистрации. Мы решили доработать это расширение, чтобы остановить спам в подписях.

Сначала сделали так, чтобы пользователь не мог задавать подпись, если у него слишком мало постов. Пороговое значение выбирает администратор форума. Мы остановились на трех постах. В результате вместо одного поста спамеры стали писать по три поста. Количество спама явно не уменьшилось :)

Затем я подумал и решил сделать по-другому. Во-первых, убрать запрет на ввод подписи и просто не отображать ее, если пользователь оставил слишком мало постов. Во-вторых, изменить пояснение «Вы сможете задать подпись только после того, как напишите 3 поста» на «Вы провели на форуме слишком мало времени, и поэтому ваша подпись пока не отображается в постах. Подождите немного.»

Новое пояснение никак не побуждает спамеров написать N постов, хотя именно это и требуется для того, чтобы подпись стала отображаться. Этот способ оправдал все ожидания, и спам в подписях практически прекратился. Новые пользователи со спамерскими ссылками в подписях по-прежнему регистрируются, но почти никто не пишет посты. Выжидают, когда же проведут на форуме достаточно времени :)

Для любознательных замечу, что, кроме описанного выше, потребовались дополнительные изменения. Во-первых, скрывается не только подпись новых пользователей, но и сайт. Во-вторых, если форум просматривает гость (незалогиненный пользователь), подозрительные подписи не отображаются и в профилях, чтобы поисковики их не индексировали.

В заключение еще раз похвалю систему расширений PunBB. Мы делали все изменения, дорабатывая расширение pun_antispam и вообще не трогая код ядра форума.

Поделиться
Посмотрите в блоге

Читайте также

Комментарии

#1. 10 октября 2012 года, 05:06. Игорь пишет:
Роман, не поделитесь секретом, как Вы боретесь со спамом в комментариях своего блога?
#2. 10 октября 2012 года, 11:19. пишет:
В этом никаких секретов нет, код S2 открыт: https://github.com/parpalak/s2/blob/releas … mments.php :)

Если зайдете на страницы с отключенным джаваскриптом, увидите дополнительное поле, которое обычно заполняется и скрывается автоматически. Правильный ответ «зашифрован» в дополнительном скрытом поле.

Конечно, такую защиту легко обойти, специально настроив бота, но боты общего назначения хорошо отсекаются таким способом.
#3. 10 октября 2012 года, 21:26. Игорь пишет:
Довольно простой способ :)
А насколько он эффективен, не часто боты пробиваются?
#4. 10 октября 2012 года, 21:29. пишет:
Вообще не было проблем. Спамерам есть смысл настраивать ботов только на популярные движки.

Хотя, если S2 станет популярным, проблемы могут появиться :)
#5. 10 октября 2012 года, 21:32. Игорь пишет:
Ясно, значит роботы не проблема с такой защитой :)
А с ручными спамерами что делаете, просто удаляете сами?
#6. 10 октября 2012 года, 21:42. пишет:
Да, а что еще с ними делать.

Обычно я скрываю комментарии, а не удаляю. Если спамер окажется настойчивым, его потом можно будет как-то забанить.
#7. 10 октября 2012 года, 22:21. Игорь пишет:
Можно попробовать использовать против ручных ботов базу stopforumspam.com
Для punbb сейчас есть такое расширение, мне очень нравится. Но есть конечно и недостатки иногда под раздачу попадают обычные пользователи которые случайно заходят с IP в черном списке.

Оставьте свой комментарий


Формулы на латехе: $$f(x) = x^2-\sqrt{x}$$ превратится в $$f(x) = x^2-\sqrt{x}$$.
Выделение текста: [i]курсивом[/i] или [b]жирным[/b].
Цитату оформляйте так: [q = имя автора]цитата[/q] или [q]еще цитата[/q].
Других команд или HTML-тегов здесь нет.