Спам с пословицами
Отправлено myx в Пт, 2013-09-27 18:06Как и многих других владельцев блогов, меня регулярно донимают спамеры, гадящие в комментариях. Большинство пытается маскироваться под читателей и пишут что-то вроде "Замечательно изложено, пишите больше подобных статей!", а где-нибудь внутри расположена скрытая ссылка на рекламируемый ресурс. Наличие подобных комментариев не только загаживает комментарии, но и отрицательно сказывается на рейтинге блога - поисковики отслеживают источники поискового спама и принимают соответствующие меры.
Поскольку я получаю уведомления о комментариях на почту, а почту читаю практически в реальном времени, подобные комментарии (и пользователи, их оставившие) живут максимум несколько часов. Но давить каждого спамера вручную все-таки некомфортно, поэтому я задумался об автоматизации процедуры - тем более, что противник тоже явно не руками работает.
Установка капчи на регистрацию нового пользователя несколько улучшила положение, но ненамного. Перебрав несколько антиспамовых модулей, я остановился на spambot, который при регистрации нового пользователя сверяется с сервисом Stop Forum Spam, и при выявлении спамера сразу его блокирует. Кроме того, упростилась процедура очистки результатов жизнедеятельности спамеров: одним движением удаляется и пользователь, и все его комментарии, а заодно и отсылается уведомление на тот же Stop Forum Spam.
После того, как я установил себе модуль spambot, спамеры практически перестали меня беспокоить. Но один особо настойчивый продолжает долбиться, обходя все блоки. Мне уже жутко интересно, что это за явление, поэтому я и пишу про него в надежде, что кто-нибудь когда-нибудь мне расскажет про него поподробнее.
Итак, некто оставляет комментарии с пословицей, в которую "запрятано" от одной до трех скрытых ссылок. Пословицы самые разные, от крылатых до таких, которые я видел впервые - база пословиц у него огромна, он практически не повторяется:
"Хочешь жить - умей вертеться!"
"И среди дураков находится умный: тот, кто молчит. "
"Кандалы остаются кандалами, даже если они позолочены."
"Когда нет хлеба, едят и желуди."
Логично предположив, что спамер работает по площадям, я полез в Гугл и нашел множество других жертв этого спамера, у которых в комментариях висели такие же пословицы со ссылками. Ими оказались блоги, форумы и прочие платформы на базе Drupal - причем преимущественно русскоязычные.
Собственно, встал вопрос, как это фильтровать. Вводить премодерацию любого рода я не хочу принципиально: любой пользователь считается благонамеренным, пока он не доказал обратного. Spambot может распознавать спамеров по email-адресу и по IP-адресу, но "знаток пословиц" заводит ящик на mail.ru, использует его до тех пор, пока он не наберет достаточно негативной статистики для блокировки, после чего выбрасывает и заводит новый. Аналогично он поступает и с IP-адресами: берет какого-нибудь левого провайдера с динамическим IP (преимущественно из стран бывшего СССР), поочередно "отрабатывает" адреса из диапазона, потом меняет провайдера. Иногда вместе со страной. Не знаю, как технически это делается, но, подозреваю, что это требует изрядного количества ручной работы
При этом почтовые адреса выглядят вполне пристойно, например: lera-bеsperstova@mail.ru, еmelyanchikova-katerina@mail.ru, dоnin_kondrat@mail.ru, nikоlaj_zyatev@mail.ru и т.п.
Единственная имеющаяся на данный момент зацепка - это имена, под которыми пользователь регистрируется. Они генерируются случайным образом и состоят из набора цифр, букв, потом опять цифр: 162sentitarsarh1574, 975liodiabige291, 875woostiysanpio1513 и т.п. Даже располагая примитивным штатным фильтром Друпала, можно создать правило "блокировать пользователя, чье имя начинается на цифру и длиннее десяти знаков" - все подобные имена в этот шаблон укладываются, при этом не страдает ни один легитимный пользователь.
Но это будет работать только до тех пор, пока наш "знаток пословиц" не изменит механизм генерации имен. Так что следующий ход за ним :)