Еще одна исторя войны со спамом на форуме



В продолжение темы, я решил поделиться своим опытом борьбы с ботами.

Однако, в отличие от предыдущего поста, я решил обратиться к сторонним сервисам.

картинку нагуглил по запросу «спам» вот тут.

С чего все началось


Сразу оговорюсь, что речь пойдет о форуме на движке smf, но это совершенно не принципиально и справедливо для любого.

Итак, однажды я завел себе небольшой форум и первые пару месяцев было все хорошо: была стандартная капча, ни одного бота, и я уже начал считать, что так и будет всегда. Сперва они начали приходить по одному, затем больше и больше, и вот, когда их стало по 10-20 в день, я понял, что пришло время что-то менять.

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

Однако, было большое желание избавить пользователя от лишней работы при регистрации. Я даже ссылку на активацию аккаунта по почту не присылал. Первое решение которое я попробовал — это StopForumSpam.

Stop Forum Spam


Очень приятный сервис, представляет из себя blacklist ip адресов, email'ов и ников, под которыми регистрируются боты. Кроме того, почти для всех движков есть уже готовые плагины. Еще хочу отметить, что он не требует регистрации, чтобы получить доступ к api (речь идет только о получении информации, чтобы коммитить спамеров регистрироваться все же надо). Запрос информации — это обычный get запрос, все очень просто и понятно.

Сразу наступила радость, так как боты в одночасье пропали. Проблемы все же были: во-первых, буквально через пару недель, после того как я начал пользоваться, сервис ушел в оффлайн на несколько дней (заявляя, что переезд на другое железо), поэтому, в последствии, я сделал себе копию их базы, обновляя несколько раз в день. И, во-вторых, ботов 3-5 в неделю ботов все же пробивалось.

Можно было бы и наплевать, в конец концов не так много. Но интерес появился и я погуглил аналогичные сервисы.

Project Honey Pot


Следующей жертвой стал Project Honey Pot. Достаточно старый проект, муторная регистрация, муторная установка, муторная настройка и муторные запросы. Может, просто не распробовал.

Запросы напоминают RBL для борьбы с почтовым спамом: dns-запрос определенного вида. В ответ приходит тип и уровень угрозы.

Более того, готовый плагин к smf работать почему-то отказался. Но довести до конца хотелось, поэтому я дописал небольшой кусочек, который параллельно со stopforumspam делал запрос и результаты записывал в базу.

Общую статистику я приведу в конце, но сейчас скажу, что примерно треть спамеров пропускает.

Akismet


Изначально akismet разрабатывался как плагин к WordPress и начиная со 2ой версии включен в него по-умолчанию. Тоже хочет регистрацию и платный для коммерческого использования. К счастью, не мой случай.

Запросы — post определенного вида.

Хотя готового плагина я не нашел, есть масса примеров и библиотек, поэтому я без проблем его добавил к уже имеющимся.

Статистика


Хотя писать в базу результаты я начал не так давно, все же уже что-то есть.

Общее число запросов на регистрацию: 2624

Из них реальных людей: 75

Спамеров: 2549

По версии:

StopForumSpam: 98 / 2526

ProjectHoneyPot: 1067 / 1557

Akismet: 140 / 2484

Вместо заключения


Сейчас решение принимается по результатам StopForumSpam и Akismet, при регистрации задержка на запросы не заметна. Я думаю, что будут проблемы с таймаутами в том случае если сервисы будут недоступны, я уже занес в TODO list, но пока таких проблем не было.

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

А капчу я отключил…
Share post
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 32

    +4
    в лучших традициях, пока топик лежал в премодерации, у меня отшили одного человека: он отписался с вопросом, что делать. Глянул ip, выяснялось, что он работает с оперы с режимом турбо (так он называется, если не ошибаюсь) и вот эти адреса попали в черные списки.
    добавлю в сообщение об ошибке, чтобы отключали режим турбо в случае чего.
      +5
      Определяете hostname IP адреса, если User Agent оперовский. Если hostname оперовский, подменяете IP прокси, страну и т.д. на реальные.
      И не надо никаких сообщений об отключении режима турбо.
        0
        ну тут спорный вопрос: можно просто выбрать диапазоны и добавить их в вайт лист как вариант. но можно, к примеру, отгрести спама.
        надо поставить оперу, глянуть какие заголовки присылают: может он реальный адрес тоже отдает.
          +1
          Отдает он реальный адрес, — как раз так и происходит подмена, как раз об этом я и говорил.
            +1
            ага, хорошо!
            тогда переделаю, спасибо.
              +1
              Если на PHP пишете, будьте внимательней — не испольутей gethostbyaddr — иногда эта функция может резолвить хост очень долго. Конечно, это реально Opera, будет разолвиться несколько десятков миллисекунд, но если UA подделан, можете повесить юзера на некоторое время. UA может быть подделан в разных целях — это не обязательно грабберы или боты, — могут быть и вполне реальные люди.
              Мы у себя используем вызов внешней программы. Выглядит примерно так:

              $res=`nslookup -timeout=$timeout -retry=1 $ip`;
              где timeout у нас по дефолту 2 сек.
      +4
      Раньше тоже пользовался всякими капяами, соответственно воевал с ботами, но после забил и включил регистрацию по ответу, например: «два прибавить адин» — еще ни один бот не пробился за последние пол года. ))
        0
        Или «семь памножить на два» :)
          +2
          Если блог программистский, еще можно

          f = lambda x: return x + 10; f(3) = [поле для ввода текста]
            0
            Сам в таком коде не очень шарю, если честно, но ответ — 13? =)))
              +2
              > f(3) ==
              Бложек ведь программерский:)
            +1
            Согласен, данный вариант отлично работает с посещалкой 8-19 тыс в день уже как лет 5, и ни о каких ботах я давно не запариваюсь )
              +2
              я писал уже:
              если есть возможность лишний раз пользователя не дергать с капчами / вопросами надо воспользоваться :)
                0
                А вот такую штуку — rpxnow.com/ не пробовали? Имхо, спамботов должно только так отсекать, и все действия пользователя при регистрации сведены практически к паре кликов.
                  0
                  любопытная штука. правда она не наша: контакта нет, яндекса нет.
                  но дело даже не в этом:
                  во-первых, не у всех есть учетки в соц сетях, т.е. в любом случае надо оставлять регистрацию обычную, не гнать же их заводить, к примеру, стр на фейсбуке.
                  и во-вторых, есть вероятность, что человек по каким-то причинам не хочет светить свою учетку, так тоже можно потерять пользователя.
                    0
                    Сорри, что-то взглючило и мой ответ ушел не в эту ветку, он ниже.
                0
                Аналогично. У Хрумера проблемы только с «текстовыми капчами». Все остальное он пробивает (и Recaptcha в том числе).
                  0
                  У меня за последний месяц эта штука каким-то образом перестала работать. Ума не приложу как, но раньше с контрольными вопросами было 0 спама, сейчас — каждый день килотонны фейковых пользователей с адресами типа 12736478123578647823+asdfas@gmail.com и спамом на форуме. Капчу отрубил уже много лет назад, ибо это худшее, что придумало человечество в плане защиты, но есть валидация учетки по мылу. То есть это, похоже, не боты, а вполне себе китайцы по юаню за штуку.
                  +1
                  > контакта нет, яндекса нет.

                  У них есть свои API для аналогичных целей, вполне реально своими силами реализовать регистрацию/авторизацию.

                  > т.е. в любом случае надо оставлять регистрацию обычную

                  Ну вот тут мы и упираемся в проблему — если сильно упростить процедуру регистрации и позволять такие «анонимные» аккаунты — то будет нашествие ботов.
                  Имхо, для российских условий, достаточно будет ВК, майл.ру, гугл, твиттер, фейсбук. У 90-95% посетителей будет аккаунт в одном из этих мест. Для оставшихся 5-10% можно оставить обычную процедуру регистрации, но с вопросами/капчами и обязательным подтверждением через электропочту.
                    0
                    В целом согласен, да и тема интересная.
                    Стоит попробовать как-нить, но уже, вероятно, не на этом форуме.
                    +1
                    У себя на форуме сделал очень просто — к базовой капче добавил чекбокс «Я подтверждаю, что я не бот» (большими красными буквами).
                    Если при регистрации этого флажка не поставить, то пользователь попадает в группу «Боты», которой запрещено писать куда-либо.

                    Это очень странно, но за последний год прорвалось (и запостили спам) буквально 5-10 ботов. Остальные успешно регистрируются, периодически логинятся, понимают что нет ни одной темы куда можно постить (или делают неуспешные попытки постинга) и отваливаются.

                    p.s. И за тот же год набралось довольно много невнимательных товарищей, которые в личку писали «Ой, а почему я не могу никуда комментить?». Каждого вручную переносил в группу «пользователи» и всё.
                      +1
                      Это очень даже странно, потому что обычно боты все чекбоксы ставят, т.к. в форме регистрации почти всегда присутствует чекбокс типа «я прочитал бла-бла и согласен», без которого регистрация невозможна.
                      +1
                      в свое время, работал с smf, проблему с ботами решил просто:
                      весь форум, кроме одного раздела, в режим «постинг только для зарегистрированных», один раздел остается открытым, показывается только гостям, постить туда разрешается всем. Раздел помещается первым. Каждые 15 минут срабатывает скрипт который удаляет все топики оттуда. 99% ботов отсекалось и они даже не регистрировались.
                        0
                        Самому приходится заниматься форумом на движке smf, спам ботов было очень много, надоело подчищать за ними, внедрил особую капчу — нужно собрать паззл из нескольких деталей. Flash/HTML5. Бесплатно и эффективно. www.keycaptcha.com/ За три месяца — 3 бота. И то, подозреваю, что эти регистрации были ручками.
                          0
                          А сколько людей отсекли?
                            0
                            Я не веду статистику, если честно; раньше каждый день было порядка 20—30 сообщений от 5—6 новых ботов. Если вы о реальных посетителях, то, учитывая, что среднее количество полезных сообщений 1—2 в день, тенденция сохранилась, т. е. из новых пользователей никто не отслеялся. ИМХО, паззл собрать гораздо проще. чем заполнить re-capcha, которую я заполняю со второго раза, как правило.
                              0
                              Пазл собирать долго — это раз. Джаваскрипт — это два. Айпады/мобилки — это три. Перечислять можно больше. Как мне кажется, наилучший способ — задавать разные, но простые вопросы на человеческом языке (типа «Как называется наша планета?»). Для пущей защиты текст вопроса отдавать картинкой.

                              Еще вариант — не знаю, как сейчас, но раньше на сайте Киевстара была такая защита: Несколько картинок, и нужно было выбрать только те, на которых изображена 2живая природа.
                          0
                          akismet проверяет пользователя при регистрации? проверяется только email?
                            0
                            да, при регистрации.
                            он достаточно много что умеет принимать на запрос, я отправляю:
                            — имя пользователя;
                            — почту;
                            — user agent;
                            — referer;
                            0
                            Хм, у меня тоже есть форум на SMF, в начале было много ботом (просто регистрировались и ничего не делали), потом настроил стандартную капчку (там можно выбрать уровень сложности изображений) — и боты сами пропали.
                            А во второй версии SMF можно задавать вопросы при регистрации — это еще сильнее ограничит спамеров.
                              0
                              да пробовал я крутить стандартную капчу, ничего не поменялось своем.
                              задавать вопросы — хороший вариант, отмечали выше уже, ага.
                              0
                              А капчу я отключил…

                              +1

                              только вот замечание по анализу эффективности — спам фильтр, который использует краудсорсинг, не должен показывать 100%, и чем популярнее форум/блог тем больше на нем будет спама, потому что фильтру надо спамера сначала поймать и только потом он может быть отфильтрован.

                              Only users with full accounts can post comments. Log in, please.