Ниже приводится краткое изложение основных, широко используемых методов противодействия спаму в комментариях (и других методов автоматической отправки нежелательных сообщений) — некоторых из методов, которые я использую при разработке собственных веб-приложений.
1. «Марсиане» — POST-запрос без предварительного чтения страницы Комментарии обычно отправляются посредством POST-запроса.
При этом предполагается, что посетитель сначала зашел на саму страницу, а затем оставляет комментарий – отправляет запрос.
Некоторые спам-боты недостаточно умны, чтобы беспокоиться о загрузке страницы и сохранении всех необходимых данных — например, файлов cookie. Нет заголовка Referer. Слабая защита, потому что все заголовки просто подделаны.
Однако если такого заголовка нет, вы можете с чистой совестью отказаться от попытки оставить комментарий.
То же самое касается и возможного анализа поля User-Agent. Никаких «конфеток».
«Сладости», файлы cookie, используются для хранения, например, признака аутентификации на сайте или хотя бы просто факта посещения сайта.
Если POST получен, а корректной «конфетки» нет — отклоняем попытку комментария.
Неверный идентификатор сеанса.
Простое решение: передавать в каждой странице специальное значение, которое по известной схеме сравнивается с хранящимся на стороне сервера.
Если правильного значения нет, это означает, что произошла попытка либо повторной отправки комментария, либо попытка отправить комментарий с помощью бота.
Мы отвергаем.
IP-адрес клиента изменился между запросом страницы и отправкой формы.
В настоящее время еще существуют провайдеры, у которых присвоенный IP-адрес компьютера может время от времени меняться.
Редко, но бывает. В других случаях это скорее указывает на использование прокси (см.
также ниже) и может считаться подозрительной деятельностью.
2. CAPTCHA (полностью автоматизированный процесс разделения компьютеров и людей), также известный как тест Тьюринга.
Самая популярная сейчас схема, многие считают ее лучшим инструментом.
Однако не следует забывать, что все тесты Тьюринга, какими бы сложными они ни были, не пройдут проверку против спамера-человека.
Конечно, спамеры не сядут разгадывать капчу самостоятельно.
за это наймут тех, кто хочет быстро заработать, по пять центов за капчу.
Это уже давно стало бизнесом.
Если у вас повсюду капча и нет простого решения, то будьте уверены: к вам придут и спамеры-люди.
Кроме того, чем сложнее капча, тем больше вероятность того, что она отпугнет обычных посетителей-людей.
Проверка комментариев как опция Captcha. В качестве варианта противодействия почтовому спаму также используется известный метод «запрос-ответ»: требуют ввести адрес электронной почты и отправить на него запрос со ссылкой активации для публикации комментария.
Отрицательные моменты: человеку это не очень понравится, и он может больше не посетить ваш сайт. Кроме того, если ссылка не требует каких-либо специальных действий, кроме ее вызова, спамеру не так сложно настроить почтовый ящик, чтобы такие ссылки «вызывались» автоматически.
В письме можно разместить ложные ссылки (спам-бот перейдет по ним и занесет себя в черный список), но на них попадутся и легитимные посетители.
Люди склонны делать ошибки.
3. Имена полей формы Большинство популярных движков веб-сайтов страдают от того, что имена их полей стандартны.
Это очень облегчает жизнь авторам ботов — отправляем форму с известными значениями, и готово.
Есть несколько возможных решений.
Переименуйте поля.
Это работает для подавляющего большинства случаев — авторы ботов не слишком заботятся о проверке своих творений на соответствие веяниям времени, а подавляющее большинство владельцев блогов не пытаются защитить себя таким образом.
Не всегда есть возможность написать модули для этой цели самостоятельно, да и готовых очень мало.
Добавьте ложные поля.
Это лучшее решение.
Добавляем множество однотипных полей со схожими по структуре названиями.
Машина либо не сможет их все заполнить, либо заполнит не те (особенно если полей много).
Скрыть поля легко с помощью CSS; боты (пока) недостаточно умны, чтобы анализировать стили и видеть, какие поля доступны посетителю-человеку.
Меняйте имена полей каждый раз при создании страницы, постоянно отображая поля в другом порядке.
Лучший вариант — в сочетании с предыдущим: машины запутаются, что именно заполнять, и, скорее всего, выдадут себя.
4. Параметры времени Человек не может отправить форму с заполненными данными через пару миллисекунд после получения страницы.
Боты могут, и не всегда, отслеживать время после загрузки страницы.
Поэтому можно проверить, находится ли человек на другой стороне.
Подождите несколько секунд после загрузки страницы.
Если форма с данными приходит быстрее, чем N секунд (пусть человек думает, читает и высказывается — пусть N будет не меньше, скажем, минуты при комментировании основного текста и не менее 15 секунд при ответе на другой комментарий).
Штраф за неверные данные.
Если человек при вводе комментария сразу не укажет правильные параметры, назначьте небольшое наказание — временную задержку.
Ограничения на количество комментариев.
Не разрешать более M комментариев в единицу времени с определенного IP. Довольно распространенная и разумная мера против поставщиков автоматических комментариев.
Ограничьте время жизни сеанса.
Нужно подходить к этому с умом.
Частично это может защитить от методов обхода капчи с использованием «негров» (наемных решателей), но не должно создавать серьезных неудобств для законных посетителей.
5. Подозрительные адреса Публичные прокси.
Хотя слухи о всемогуществе прокси как средства маскировки сильно преувеличены, их все же можно использовать, если некоторые адреса будут забанены.
Если прокси анонимизируется и реальный адрес определить невозможно, вся надежда — на анализ публичных списков прокси (см.
FreeProxy как пример источника списков прокси).
Здесь вы также можете добавить прокси-сети.
Тор .
Но там проще — всегда доступен полный список серверов и при желании доступ из сети Tor можно запретить.
Естественно, запрет на использование прокси отсечет и вполне легитимных пользователей, которые по тем или иным причинам пользуются прокси-сервисом.
Стоп-листы.
Вы можете начать с СпамХаус , где помимо известного DROP-списка есть простой способ определить причастность IP-адреса к списку всех «разоблаченных» IP-адресов, вовлеченных в рассылку спама или связанных с ним действий.
Пока с УДАЛИТЬ список все понятно - блокировать безоговорочно - а вот с другими не все так просто, учитывая ложные сигналы и возможность попасть в стоп-листы "за просто так".
Адреса принадлежащие сайтам.
Например, если запросы исходят с адреса, на котором расположено множество веб-сайтов, есть повод задаться вопросом, законны ли попытки отправлять комментарии с этих адресов.
Если вы используете API, это одно; если вы имитируете отправку формы комментария, это другое дело — вам, вероятно, следует запретить публикацию.
Правда, не существует абсолютно надежных способов проверить, что адрес заведомо следует считать подозрительным с этой точки зрения.
6. Услуги по фильтрации спама .
Из них стоит упомянуть Акисмет И Моллом .
Оба, конечно, имеют ограничения при бесплатном использовании, и оба имеют платную подписку (определите, можете ли вы позволить себе то или другое).
Как и любая обученная система, она не свободна от ошибок и может принимать множество сигналов с разных сайтов, прежде чем спам того же типа начнет эффективно перехватываться во всех остальных местах.
7. JavaScript Боты обычно не используют JavaScript, его интерпретация и выполнение отнимут слишком много времени и ресурсов, а бот должен работать эффективно и быстро.
Обратная сторона в том, что если законный пользователь частично или полностью заблокирует JS на страницах вашего сайта (популярная мера в наши дни), ему будет сложно комментировать.
Варианты на этот счет: Динамическое изменение параметров сеанса.
Используя методы, называемые AJAX, измените важные параметры сеанса сразу после загрузки формы.
Имена полей, значения ключей, требующие проверки на стороне сервера.
Недостатки очевидны — вам нужен браузер, совместимый с вашей реализацией AJAX, и хорошая связь с сервером, чтобы это работало безупречно и не раздражало людей.
Но в целом это кажется очень многообещающим способом отсеять ботов.
Шифрование страницы или части страницы.
Если страница зашифрована таким образом, что ее невозможно сделать простыми способами читаемыми без обмена с сайтом, то угадать имена полей (если они меняются от запроса к запросу, см.
выше) становится практически невозможным без использования полнофункционального шифрования.
готовая реализация JS. Неработающие URL-адреса.
Это не совсем защита от спама, но это способ сделать его бесполезным.
Используя JavaScript, мы превращаем существующие ссылки в «мусорном» состоянии в подлинные.
Исходный HTML-код не содержит рабочих URL-адресов, которые могут распознать поисковые системы, что делает спам менее эффективным.
Если вы дадите возможность конвертировать URL-адреса в «хороших» комментариях в обычные (учтите, что это займет некоторое время у вас или ваших помощников на анализ комментариев), то ситуация станет приятнее для легитимных посетителей.
8. Грубая сила rel="noindex,nofollow" как атрибут всех ссылок.
Не всегда эффективно; не все поисковые системы учитывают эти атрибуты.
Кроме того, если такие атрибуты безоговорочно навязать всем без исключения комментариям, многие добросовестные посетители потеряют интерес к сайту.
Удалите поле URL в комментариях, как это сделано по умолчанию, например в Друпал .
Это также «отпугнет» некоторых законных посетителей (многие оставляют свои ссылки не ради повышения индекса цитируемости, а для того, чтобы, так сказать, с вами познакомиться).
Однако, по моему опыту, спамеров это не отпугивает — ссылки просто размещаются в теле комментария.
Хотя поисковики не всегда увидят такую ссылку, сайт она точно не украсит. Если спам рассылает человек Здесь возможны две основные ситуации: - спамер использует сервис для «решения» препятствий типа Captcha, где эти проблемы решают нанятые за небольшие деньги люди.
Просто и эффективно.
— спамер нанимает людей с инструкциями, на каких сайтах и какие комментарии оставлять.
Не обязательно полностью вручную – чаще всего полуавтоматически, с использованием программного обеспечения для ускорения процесса.
Казалось бы, выход один – анализировать оставленные ссылки (собственно, ради них и пишутся комментарии).
Но существуют вполне перспективные семантические проекты по анализу таких спам-записей и анализу упомянутых в них сайтов.
Я не могу конкретно сказать, какие разработки уже существуют и доступны широкой публике.
Если кто-нибудь знает подобные проекты, сообщите, пожалуйста.
Заключение В статье обозначены основные идеи, которые, несомненно, приходили в голову многим людям.
Нет и не может быть революционно новых способов противодействия автоматическому и полуавтоматическому спаму; это традиционная ситуация «броня против снаряда».
Я предполагаю, что при создании будущих версий ваших Веб-продуктов, требующих защиты от автоматической отправки сообщений (в том числе комментариев), используйте следующие методы: а) стоп-листы.
Мы блокируем уже известных спамеров до того, как начнем анализировать их данные; сюда также относятся такие сервисы, как Akismet, Mollom и т. д. б) проверить «Марсиан» — все данные сеанса должны быть на месте в) ограничения по времени: мы не разрешаем публиковать комментарии слишком быстро и/или слишком часто.
г) (если включен JS) с помощью технологий AJAX меняем параметры сессии, чтобы усложнить жизнь ботам д) создаем ложные поля помимо правильных, для них всех создаем случайные имена, если у нас JS, то шифруем ту часть страницы, где находятся собственно поля ввода - чтобы усложнить жизнь ботам Кроме.
При срабатывании «сигнала тревоги» — если есть подозрение на спам — мы делаем немного хуже жизнь тому, кто пытается отправить повторно — добавляем капчу, увеличиваем временной интервал между отправкой очередной версии формы.
В случае достоверного спама мы добавляем IP в черный список и на определенный интервал обязательно блокируем возможность отправки с него сообщений; для живых пользователей мы оставляем четкую инструкцию, как снять бан.
Если спам оставил живой человек, мы используем (еще не существующий) метод эффективного анализа ссылки и содержимого сайта, на который она ведет. И, конечно же, вести собственную базу IP-адресов спамеров и всех внешних признаков ботов, которые они используют — для их выявления на ранних этапах, поскольку все вышеперечисленные процедуры — это существенная нагрузка на сервер.
Теги: #спам #блоги #умелые руки #Чулан
-
9 Правил Начинающего Ajax-Разработчика
19 Oct, 24 -
6 Мифов О Финтех-Развитии
19 Oct, 24 -
Что Такое Хороший Двигатель?
19 Oct, 24