воскресенье, 21 октября 2007 г.

Спам - история борьбы

Я хочу рассказать про мою борьбу со спамерами. Моя борьба с почтовым спамом закончилась, когда я перешел на Google Applications, раз в день-два может приходить спам письмо, но остальные 50 ждут своего конца в папке «Спам».

Борюсь я со спамом в гостевых книгах. Нередко на сайтах, на которых давно не ступала нога администратора, можно встретить заваленные спамом гостевые книги, с предложениями о дешевой виагре и увеличении члена.

Я занимаюсь региональным проектом о развлечениях в Чебоксарах. В свое время мы сделали возможность комментировать заведения и мероприятия. Через месяц после этого, начал валить спам, сначала по 5 сообщений, потом уже 40 в день

и даже больше. Понятно, что нужно было что-то делать.

Я пытался построить каскадную спам защиту:

  1. Бан по IP. Толку от него мало, за все время сработал пару раз.
  2. Бан по словам. Половину сообщений было вроде «Nice Site! http://....». Сначала очень помогло, я даже расслабился и потирал руки, но потом спам стал видоизменяться и проходить через фильтры.
  3. Премодерация. Все сообщения от неавторизованных пользователей проходили премодерацию. Это помогало от спама и от пионеров, которые пишут всякую муть, в основном «Вася: А этот клуб – г…но, меня туда не пустили».
  4. CAPTCHA — это аббревиатура от английских слов "Completely Automatic Public

    Turing Test to Tell Computers and Humans Apart" — полностью автоматический тест Тьюринга для различения компьютеров и людей. Иными словами, это задача, которую легко решает человек, но которую невозможно (или крайне трудно) научить решать компьютер.
    После этого поток спама иссяк вообще. Позже оказалось, что этот тест не проходят еще и часть пользователей. Поэтому я сделал, что CAPTCHA не показывается для пользователей с местными IP адресами, для сайта с региональной аудиторией это достаточно.

Иногда спам все-таки появляется, проходя через Captcha. Но, скорее всего, его рассылают люди - спамеры.

Слава богу, что спам в гостевых книгах и досках объявлений не развился до такого уровня, как поисковый спам, иначе бы сайты утонули в море спама. По данным Яндекса
доля почтового спама составляет 95%

8 комментариев:

jeka911 комментирует...

Про то, что не показывать каптчу айпишникам, которые недалеко - отличная идея.

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

Ну и про Good site! ты четко подметил - в таких рогаткой.

Денис Радченко комментирует...

Это идея! Пока пробовал, только скрывать поле через CSS - пользы никакой.

Кстати, похоже, ты первый читатель этого блога :)

Greignar комментирует...

Я использую следующие методы:
1. Само собой - капча, привязывается к ip и показывается только с рефером моего сайта + вывод на странице через яву.
2. Фильтрация на основе черного списка слов (во всех полях) - бан на длительный срок.
3. Фильтрация на основе нежелательных выражений (проще - матов и албанского) - ставится бан на время, в зависимости от "грубости" посетителя.
4. Фильтрация по статическому и динамическому (п.2,3) спискам ip.
5. Проверка количества нажатых клавиш в процентах от размера комментария - бан не ставится, но комментарий не добавляется.

Денис Радченко комментирует...

Greignar, Идея с нажатыми клавишами просто замечательная.
Ставить бан на IP идея хорошая, только есть 2-3 IP с которых сидит 15% всех пользователей (NAT, модемный доступ, GPRS), их нельзя банить.

Денис Радченко комментирует...

Дополню комментарий: только у меня на сайте есть 2-3 IP, с которых сидит 15% посетителей

Sergeyev комментирует...

Насчет капчи, мы долго думали, как можно сделать наименее напряжную для пользователя капчу.
В итоге сделали вот такую:
http://core.one-face.ru:8000/one-face/loginer_two_clicks.swf

Задача - выбрать две одинаковых по смыслу картинки. Для человека есть еще подсказка, что должно быть там изображено. Картинки перемешиваются, и постоянно обновляется набор картинок. Для робота задача нереальная, для человека - два клика провести.

Нравится?:)

Кстати, как насчет подключиться к One-Face.ru? Сможете подставить такую вот капчу для желающих комментиться. И защита от роботов, и удобство для пользователей.

Денис Радченко комментирует...

Alexander Sergeyev, интересная реализация капчи.
Чуть позже просмотрю ваш сайт получше .

Greignar комментирует...

Alexander Sergeyev, а почему именно флэш? У многих он отключен, не говоря о посетителях с мобильных браузеров.

Денис Радченко, только пользователи мобильного интернета (телефонов) не смогут пройти тест по любому, на их браузерах ява не обрабатывается (opera-mini, wap), хотя кто с их адресов будет спамить, это делается через прокси, которые банятся в автомате сразу же после первой рассылки и последующие спамеры этой проксей воспользоваться не смогут. Под ip бан могут попасть любители крепкого словца, но эту возможность можно отключить, просто сбрасывая текст сообщения без всяких комментариев. При желании можно "вакцинировать" посетителя с помощью cookies, и в ней непосредственно прописывать время бана, а так же проводить идентификацию по браузеру и оси - определять "мобильного" посетителя.

Проблема в том, что есть те, кто спамит вручную. От них никакая защита, кроме подсчета нажатий клавиш не поможет - они все делают копипастом!