суббота, октября 14, 2006

Идеи по поводу борьбы с автоспамом форумов

Сейчас наверное нет уже ни одного владельца форума, который не столкнулся бы с проблемой спама. Ну разве что форуму пару дней отроду. Можно конечно тупо удалять вручную спам-посты, но это мягко говоря неразумно - против автоматических средств использовать ручной труд. Активация новых пользователей вручную, captcha - всё это уже давно неэффективно против спамеров.

Чтобы бороться с врагом, надо его изучить. Итак приступим к обзору вооружения спамеров. Для современных продвинутых спамилок не проблема авторегистрироваться с верификацией по e-mail, обходить практически любые более-менее распространённые captcha и некоторые спамилки даже умеют преодолевать некоторые распространённые защиты с помощью javascript'а. Но тем не менее спамилка - это просто программа и никакого искусственного интеллекта там нет.

Кроме взлома captcha обычно происходит просто анализ страницы с формой и либо просто поиск шаблонных элементов для применения заданного для этого шаблона метода спама, либо(в расчёте на то что можно постить незарегистрированным пользователям) анализ названий полей формы с попыткой отправить сообщение.

Итак где мы можем помешать роботу зарегистрироваться? Ну например воткнуть фотографию со слоном и попросить написать что изображено на картинке. Естественно фотографий должно быть несколько и желательно периодически добавлять новые, удаляя старые, чтобы защититься от тупого ввода в базу шаблона для конкретно вашего форума.

Также для защиты можно использовать то, что спамерские боты не умеют исполнять javascript. Например на странице с отправкой поста вставить javascript, который вставит в форму скрытый элемент с определённым значением - так как бот не умеет выполнять javascript, то он не сможет вставить этот элемент и присвоить ему указанное значение. Так как по идее боты могут проанализировать javascript на примитивном уровне, то желательно воспользоваться замечательной функцией eval чтобы скрыть наше намерение вставить элемент в форму и присвоить ему определённое значение.

В принципе таких методов хватит для успешной борьбы с автоспамом форумов.

Комментариев нет: