Действуйте по инструкциям:
Введение
Ссылочный спам беспокоит владельцев веб-сайтов с момента начала эпохи веб 2.0 как минимум, а вообще - со времен появления приложений (сайтов) с реакцией на пользовательский ввод (гостевые, базы ссылок, доски объявлений).
На сегодня он является одним из самых привычных видов спама для веб-мастеров, тысячи ботов, сотни тысяч ссылок, миллионы прокси серверов...
Кратко
Ссылочный спам существует благодаря массовости, пусть 90% сообщений не дойдут, их удалят, но 10% окупят результат, если 10% это 10000 сайтов.
Во вторых он существует благодаря тому, что не всем есть дело до него, либо используются простые методы защиты, которые легко/не очень легко обходятся ботами.
С переменным успехом можно использовать для защиты от ботов известные методы, и со 100% можно использовать редкие методы.
Принцип действия ботов
В основном разделяется на несколько этапов
1.Найти сайт/взять из готовой базы - тут могут использоваться поисковики по ключевым словам, типичным конструкциям/частям URI и т.п.
2.Найти форму регистрации (если можно писать гостям - пропускаем этот пункт - часто но не всегда) - используется база ссылок по определенному движку
3.Регистрация [вынесу в отдельный блок ниже]
4.Ожидание и/или постинг ссылок - в зависимости от типа бота [расскажу ниже]
5.Аккаунт покидается ботом, либо бот периодически заходит и добавляет спама
Принцип регистрации
◦Часть ботов использует примитивную систему регистрации, отправляется четко определенный запрос содержащий (обычно) имя, пароль+пароль_подтверждение, ё-мейл, капча(если есть), скрыть ё-мейл(да).
◦Часть - использует полную форму - обрабатывает вашу форму регистрации и частично заполняет ее (как придется), хотя в ICQ обычно пишут асечку(случайную, а может и нет) и т.д.
◦Капча разгадывается либо на лету (ботом) - системой OCR, либо сервисами решения капч - тысячи китайцев и школьников готовы решить любую капчу за пол доллара/миску риса. Это большая проблема для любой капчи, на сегодня (хотя в теории есть решения для этого).
◦После заполнения полей (или сборки стандартного запроса) он отправляется на сервер. Особо упорные боты шлют его десятки раз, потом, очевидно, им становится скушно и они уходят.
Постинг спама
От самого простого до самого сложного, по категориям:
•Простой спам - просто гора ссылок, немного текста для релевантности, снова ссылки на разные мусорные сайты
•Спам сообщения - стандартное сообщение подходящее под любой контекст/такого же типа комментарий в стиле "Зачотная новость!" или "Hi i'm new to this forum" - определяются по атипичности и наличии (возможно скрытых) ссылок, возможно в подписи, если она есть.
•Относительно релевантный спам - спам сообщения, копирующие старые посты/комментарии, либо же подходящие под тему посты с других форумов либо нечто схожее, их может пропустить даже бывалый админ
Часть ботов затаивается, например, просто оставляет свою ссылку в профиле/подписи (или вообще просто регистрируется и даже не заходит в аккаунт), ничего не постит.
Но это лишь на время, позже личинка разовьется в спам бота, и будет периодически радовать админов, если его не заблокировать/удалить.
Где бывают ссылки?
■Подпись
■Тело сообщения, в том числе: ссылки-пробелы, ссылки буквы, ссылки знаки пунктуации, ссылки слова и ссылки картинки. Возможно что-то пропустил? Ну и оно бывает.
■Псевдо-подпись - на самом деле относится к телу сообщения - ставятся прочерки(или минусы, или вообще просто перенос) и далее идут ссылки, внешне напоминает подпись
■Веб-страница - в поле для веб-страниц - обычно в профиле
Основы защиты
Что нужно сделать изначально:
Запретить комментарии гостям
Включить капчу (recaptha/secureimage(1|2) )
Вопрос-ответ или то, что должен знать каждый
Стоит ли включать подтверждение по e-mail, какова эффективность этой меры?
Чуть больше нуля, если вопрос стоит в защите от спам ботов, они отлично пользуются практически всеми сервисами бесплатной почты.
Другое дело что так - пользователь сможет восстановить пароль если будет необходимо, т.к. он указывает реальную почту.
Какова эффективность капчи?
Доходит до 95% для новых образцов (не всех), но вскоре падает почти до нуля, школьники-китайцы могут разгадать почти любую стандартную капчу. Сейчас стоит пользоваться разве, что рекапчей либо еще каким сторонним сервисом, хотя они не гарантируют защиту от спама.
Я баню их всех по IP...
Если вам скушно долгими зимними вечерами, попытайтесь забанить все мировые прокси, например - прокси спам ботов. Каждый день их появляется не одна тысяча - глупо пытаться одолеть их вручную.
Эффективность бана может проявляться если вы забаните сразу страну или первый октет включительно. Хотя бы. Заодно это могут ощутить и простые пользователи - как итог - отток посетителей (банить страны это плохая идея).
Какие домены e-mail лучше заблокировать?
Если очень хочется, то для бывшего СССР я бы порекомендовал блокировать домена aol.com ,yahoo.com ,live.com и прочие импортные, в которых фактически нет наших пользователей, зато есть спам-боты, особенно богат ими Яху (импортный тындекс) - самая большая статистика по оф-сайту.
Но! Если не хотите терять посетителей (хоть и не многих) - воздержитесь.
Решать, как обычно, вам.
Продвинутая защита
Первое что мы знаем - у ботов есть базы ссылок регистрации под движки
Замена файла регистрации
Просто смените имя файла регистрации, обычные пользователи не заметят разницы, боты же получат ошибку 404 и уйдут в растерянности.
Заранее предупреждаю, что сменить имя файла легко, а вот проверить на нормальную работу уже сложней. Будьте аккуратны, и проверяйте результат.
Второе - типичные поля в форме регистрации, бот их знает
Замена имен полей в форме регистрации
Аккуратно заменяем поля name="username" на name="chtougodno" , важно поменять обработчики этих полей так же! Здесь необходимы небольшие знания php и html и аккуратность. Обычные пользователи результат не увидят вообще, боты - не смогут даже отправить правильные данные.
Третье - секреты и ловушки
Это все, начиная от флажка "поставь галочку если ты не бот" и кончая специальными полями, куда вводится результат работы javascript автоматически
Реализуется в индивидуальном порядке, достаточно сложная штука для новичка, но эффективность обычно велика.
Как работает BlackBox - или простая защита для любопытных:
Я надеюсь вы знаете о сабже, если нет - поиск по форуму поможет.
Первое - динамически меняющееся поля пользователя, оно меняется каждый час + в зависимости от IP адреса гостя + используется ключевое слово сайта. Оно имеет случайную длинну и случайный (валидный) набор букв/цифр. На данный момент еще нет ни одного бота, который бы распознавал это поле (кроме ручных регистраций).
Но и это не предел, само собой.
Второе - маскировка под стандартное поле, простой шаблон текста позволяет менять его в случае обнаружения, разумеется в будущем я планирую упростить правку шаблона (сейчас хардкод)
Третье - гибкость интеграции - он работает не вместо, а вместе с капчей и другими системами защиты, поскольку он является типовым полем пользователя, с расширенным функционалом.
И наконец - используются ловушки - возможность блокировать ввод полей, автоматически заполняемых ботами и бан по IP за попытку ответить стандартную чушь бота (ограничит возможность для повтора, и возможно бот покинет нас)
В качестве бонуса - использование DNS-проверки IP адреса по базам спама.
Не смотря на то, что работает она хорошо, порою срабатывает на пользователей, потому решать вам - включить её или нет.
Вопросы-ответы дополню потом, да и остальное тоже, фантазия иссякла