Как безмозглые разработчики создали чуму социальных сетей

Написал Буржунет Янв 23, 2010 в рубрике SMO |

Сферой деятельности ботов являются социальные сети, и именно они несут ответственность за повальный кретинизм.

Например, в Twitter невероятное количество ботов (типа А), является фолловерами такого же огромного количества очень занятых ботов (типа Б), которые автоматически генерируют 27%  ценного контента (ссылки на сайты с инструментами по увеличению полового члена) и 73% не очень волнующих девичьих разговоров (порождают спрос на дешевую Виагру).

Огромное количество ботов (типа В) переписывают записи бота (типа Б), который генерирует всякую чушь,  и создают списки ботов (типа А, Б, В). И в тех редких случаях, когда не бот пытается действовать в Twitter, убер-бот (типа Т) предотвращает негативное влияние на всю сеть ботов и выдает ошибку 503 на браузер пользователя.

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

Twitter наносит вред, который стоит Вам тяжело заработанных денег.

О чем, черт возьми, мы тут разглагольствуем? Ради общего блага мы предлагаем Вам провести маленький практический эксперимент.

  • Опубликуйте отличную, стоящую часть контента.
  • Разошлите его URL через Twitter (не сокращенный URL, сообщение должно включать URL, содержащий ≤139 знаков) и призовите всех к действию.
  • Просмотрите журналы Вашего сервера.
  • Фу. Количество ботов растет с каждым ретвитом.

Так что же происходит на Вашем сервере? Орда жадных ботов налетает на каждый твит, который содержит ссылку, и запрашивает его контент. Это происходит потому, что каждый URL на Twitter должен быть сокращенным. И этот произвольный, другими словами, неправомочный бот-траффик уничтожает Ваши ресурсы, и (при помощи дешевого хостинга) он может помешать пользователям прочитать Вашу великолепную статью или кликнуть на тщательно подобранное объявление.

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

Поддельные приложения на Twitter и их способ действия

Не было бы такого беспорядка, если бы только каждый Twitter-бот просматривал каждый URL только один раз. Фактически, каждый из этих паршивых ботов запрашивает Ваш контент 10+ раз за один твит, и снова столько же за каждый ретвит. Это значит, что чем популярнее становится Ваш контент, тем больше трафик-ботов он привлекает.

Большинство этих ботов не смотрят robots.txt, а это означает, что Вы даже не сможете заблокировать их при помощи веб-стандартов. Например, Topsy уважает права производителя контента, поэтому Протокол исключения роботов (Robots Exclusion Protocol, REP) может обнаружить идиотов, которые используют “Python-urllib/1.17″ или “AppEngine-Google; (+http://code.google.com/appengine; appid: mapthislink)”. Их разработчики черезчур ленивые, чтобы понять подобные протоколы, которые использует каждый уважающий себя сервис в сети (поисковая система).

Некоторые из этих ботов даже отдают HTTP-реферер, чтобы привлечь Вас на веб-сайт, который управляется их придурком разработчиком, когда Вы просматриваете статус реферера. Другие обманывают web-сервер, представляясь не роботом, а браузером пользователя, с помощью поддельного значения User-agent, но это происходит только в том случае, если Вам не хватает ума понять, что пахнет жареным (другими словами запросы в браузере без изображений, CSS файлов, и т.д.)

Один из самых злостных нарушителей появляется в cтроке агента пользователя под именем «ThingFetcher». Он размещен на хостинге Rackspace – хостинговом сервисе, который не сильно заботится о своей репутации. Другими словами, эти ребята вряд ли отреагируют на Вашу жалобу на “ThingFetcher”. Кстати, Rackspace представляет Роберт Скобл, и Вы можете черкнуть ему несколько строк, если “ThingFetcher” тоже Вас раздражает.

Иногда “ThingFetcher” запрашивает URL (сокращенный) по 30 раз за секунду с разных IP- адресов. И все может стать намного хуже, если URL будет передаваться в Twitter слишком часто. Этот вредоносный участок кода нельзя обнаружить с помощью robots.txt, и он не отображается в кэш-памяти. И, кстати, глупо следовать связанным редиректам. Они нигде не публикуют свои результаты, по крайней мере, мы не смогли найти эти загадочные URL  в поисковом индексе Google.

В свою защиту разработчики “ThingFetcher”  могут сказать, что они выполняют только HEAD-запросы. Это правда, что HEAD-запросы вызывают только заголовок HTTP-ответа. Но используемый скрипт полностью выполняется, а вот выход уже будет подпорчен.

Это значит, что веб-серверу приходиться работать с такой же загрузкой, как и GET-запрос, она просто удаляет часть контента (полностью отформатированные HTML-страницы) при ответе, после подсчета ее размера, чтобы послать заголовок ответа content-length. И Вы действительно думаете, что нам наплевать на машинное время? И вместо всех этих фальшивых запросов, сервер бы рассылал объявления реальным людям.

К сожалению, ThingFetcher не единственный бот, который осуществляет поиск для каждого URL, вставленного в твит при каждой его обработке. Скорее всего, общее количество URL, которые появляются только один раз, больше, чем количество URL, которые часто появляются во время ретвитов. Это значит, что для владельцев ботов делать HTTP-запросы дешевле, но это дороже для производителей контента, а также для серверов по сокращению URL.

Производителей контента не интересует стоимость любого приложения на Twitter, которое помогает ему доставлять что-либо пользователям. Их интересуют собственные  расходы, и они легко могу обойтись без этого ничтожного сервиса. Они, конечно, могут один раз предоставить доступ на один URL (сокращенный), чтобы выяснить его конечное назначение, но они не могут так бездумно позволить распоряжаться своими ресурсами.

Даже сопутствующий «сервис» на Twitter, который делает множественные запросы на один вставленный в твит URL (сокращенный), несет ответственность за кражу.  Но это еще мягко сказано, потому что все эти набеги обходятся публикаторам в круглую сумму.

Все эти замечательные приложения должны вести таблицы базы данных и сохранять назначение каждого редиректа (цепи), который доступен по сокращенному URL. Или не использовать сеть, а, соответственно, платить издателям. И, между прочим, Twitter должен прекратить сокращать URL, ведь это не только вредит Интернету, но и обходится нам в круглую сумму.

Еще несколько ботов, которые необходимо исправить или, по крайней мере, немного изменить

Ниже представлен список других, «не совсем честных ботов», которые действуют на Twitter. Это не список «самых злостных преступников», он не совсем полный, а боты, перечисленные в нем, приведены в произвольном порядке (список составлен на основании запросов по ссылке в тестовом твите – это боты, которые перешли по ней в течение 5 минут).

Tweetmeme. Источником бота Tweetmeme является eagle.favsys.net. Этот бот нельзя остановить с помощью robots.txt. На своем сайте его разработчики не объясняют, почему не соблюдают протокол исключения роботов (REP). Действия этого бота не соответствуют требованиям протокола.

Бот OneRiot/1.0 (riot – мятеж, бунт, беспорядок) полностью подтверждает, что название  этого поискового сервера, работающего в режиме реального времени, как нельзя лучше подходит для него. Выполнение 5+ GET- или HEAD-запросов на одну ссылку в твите (иногда больше), конечно же, считается нарушением. Запросы на контент приходят с разных IP-адресов, пример имени хоста – flxl-pp*lvdi.net, например flxl-pp*lvdi.net. Эти IP-адреса также являются источниками другого бота: Me.dium/1.0, me.dium.com делает редирект на oneriot.com. OneRiot не следует требованиям REP.

Microsoft/Bing также запускает абуз боты, когда отслеживает ссылки в твите. Они обманывают веб-сервер с помощью фальшивого User-agent, используют IP-адреса, которые не совсем указывают на Microsoft (нет имени хоста, например, 65.52.19.122, 70.37.70.228…), посылают множественные GET-запросы на один обработанный твит, и не отвечают требованиям REP. Ниже приведено небольшое замечание, на тот случай, если Вы решите заблокировать абуз MSN трафик-бот:

Уведомления MSN/Bing просят Вас не блокировать их спам-боты, если Вы хотите продолжить пользоваться их поисковым индексом (это также касается поиска в режиме реального времени), но кому это действительно надо? По сравнению с другими поисковыми системами, такими как Yahoo и Google, поисковый индекс Microsoft очень маленький, а их поиск вообще отстойный. Для того, чтобы быть включенными в индекс, Вам необходимо представить свои URL на форуме веб-мастеров Bing, и в большинстве случаев Вам даже не понадобятся все пальцы Вашей правой руки, чтобы подсчитать рефереры с SERP Bing за год. Если Ваша статистика показывает больше, проверьте исходные данные. Очень скоро Вы поймете, что спам-боты MSN/Bing  подставляют фильшивый трафик из SERP в HTTP-реферер (догадайтесь, что означает их «внушительный» сегмент рынка).

Бот FriendFeedBot/0/1 легко объяснить и он работает правильно. На странице этого бота перечислены все его IP-адреса, и дан e-mail адрес, куда Вы можете направлять свои жалобы. Мы включили FriendFeedBot в этот список только потому, что у него нет достаточно хорошей поддержки REP.

Источником бота PostRank/2.0 являются IP-адреса Amazon.com. Он не соответствует требованиям REP, и выполняет более одного запроса на URL, найденный в одном твите.

Mark Monitor использует бот, который обманывает запросы браузера, и источником этого бота является *.embarkhsd.net (va-71-53-201-221.dhpc.embarqsd.net, va-67-233-155-66.dhpc.embarqsd.net, …). Он выполняет множественные запросы на один URL, не отвечает требованиям REP.

Бот Cuil устанавливает пустое имя агента пользователя, когда Вы идете по ссылке в твитах, но его можно запретить в robots.txt, как и официальную программу-обходчик Cuil — Twiceler. Мы не проверяли, можно ли заблокировать этот Twitter-бот, следуя инструкции Cuil для веб-мастеров. Мы включили его в этот список, как пример ботов для с подменой User-agent.

Источником бота Twingly Recon является *.serverhotell.net. Этот бот не отвечает требованиям REP, его владельцы не известны, но он делает всего несколько HEAD-запросов.

Источниками многих ботов, которые обманывают браузеры, являются Amazon, Rackspace, и другие ресурсы в сети, поэтому Вы не можете определить их владельцев, пока не заполните форму жалобы на сайте хостера. Вы можете определить эти боты, если проверите Ваш каталог доступа по IP-адресам. Те «браузеры», которые не запрашивают Ваши изображения, CSS-файлы, и так далее, скорее всего, являются ботами. Конечно, пользователи, которые закэшировали Ваши изображения и CSS-файлы, также подходят под это определение. Заблокируйте только те IP-адреса, которые в течение долгого периода времени запрашивают исключительно Ваши HTML-выходы (правда, возникают проблемы с ботами, которые используют DSL-провайдеры, AOL,…)

Мы можем дать Вам хороший совет – блокируйте запросы (с IP-адресами, которые принадлежат потребительским провайдерам, или запросы с Amazon, или с других динамических хостингов), с User-agent “LWP::Simple/5.808″, “PycURL/7.18.2″, “my6sense/1.0″, “Firefox” (just these 7 characters), “Java/1.6.0_16″ or “libwww-perl/5.816″. Кстати, вместе, эти запросы можно включить в список «злостных нарушителей».

К тому же, есть студенты, которые проводят исследования. Например, я не уверен, что хочу тратить свои ресурсы на запросы из московского «Института системного программирования РАН», которые производят фальшивые и абсолютно ненужные загрузки человеческого трафика (с efrate.ispras.ru, narva.ispras.ru, dvina.ispras.ru …), например.

Когда Вы анализируете бот-трафик, которые идет с твита со множеством ретвитов, то Вы сможете составить более подробный список вредоносных ботов. Не все приложения Twitter направляют свои короткие URL через их серверы, так что можете не обращать внимания на абуз-запросы, которые приходят от реальных пользователей через скрипты клиентских сайтов.

Разработчики могут говорить о том, что подобные запросы направлены «на благо пользователей», и что они не являются абузами, и не считаются трафик-ботом. Но это бред, несмотря на определенную архитектуру приложений Twitter , если бот делает несколько запросов на оценку одного (сокращенного) URL. Например,  Googlebot тоже работает на благо пользователей поисковой системы, но он не перегружает Ваш сервер. Он выбирает каждый URL, который содержится в твитах, только один раз. Да, он обрабатывает все твиты.

Как все сделать правильно?

Вот что владельцы сайтов могут ожидать от приложения Twitter веб-робот:

Правильный User-agent

Веб-робот должен обеспечить имя User-agent, который отвечает по крайней мере этим требованиям:

  • Уникальная строка, которая идентифицирует бота. При изменении версии уникальная часть этой строки меняться не должна  ”somebot/1.0″, “somebot/2.0″, …).
  • URL указывает на страницу, которая объясняет назначение бота, называет имя владельца, и рассказывает, как этот бот можно заблокировать в robots.txt.
  • Намек на устройство рендеринга, например “Mozilla/5.0 (compatible; …”.

Метод проверки бота

Все IP-адреса, которые используются для ботов, должны относиться к именам серверов, которые имеют уникальный путь. Например, Googlebot приходит только с серверов,  названных "crawl" + "-" + replace($IP, ".", "-") + ".googlebot.com", например, “crawl-66-249-71-135.googlebot.com”. Все основные поисковые системы соблюдают этот стандарт, который позволяет определить программу-обходчика, и при этом не сильно надеяться на User-agent, который легко подделать.

Соблюдение стандартов robots.txt

Веб-мастера должны уметь управлять ботами с директивами программы-обходчика в robots.txt. Веб-робот должен прочитать файл robot.txt  сайта прежде, чем он запустит запрос на контент, если у него нет кэшированной версии за этот день.

Соблюдение директив индексирования REP

Необходимо соблюдать директивы индексирования, такие как “nofollow”, “noindex”, и т.д. Это применяется для Head-запросов и кэшируется только для кода отклика редиректа 301/302/307., а также  для заголовка «размещения».

Ответственное поведение

Как уже было сказано выше, запрашивать одинаковые ресурсы снова и снова безответственно. Выбор или «хэдирование» ресурса не более одного раза в день должно применяться для каждого приложения Twitter.

Соблюдение авторских прав

Копирование контента страницы, или просто больших цитат, является нарушением правил. Нормальным считается копирование названия страницы и обобщения из МЕТА элемента, например «описания» (или не более 250 знаков из первого параграфа статьи) для создания ссылки, но не более! Также, показ изображений или вставка видео с других сайтов нарушает авторские права.

Заключение, и призыв к действию.

Если Вас достали трафик-боты с Twitter, используйте среду, в которой существуют эти боты, чтобы рассказать о них всем. Определите владельцев вредоносных ботов и расскажите о них всем. Проследите их хостинги, найдите форму сообщения об абузе, и напишите жалобу. Большинство этих приложений используют API Twitter, а там есть много форм сообщений о спам-боте, которые Вы можете использовать, чтобы уничтожить их репутацию на Twitter. Если у Вас есть аккаунт на вредоносном приложении Twitter, то удалите его и воодушевите Ваших друзей сделать то же самое.

Не позволяйте, чтобы воровство сошло с рук этим придуркам с Twitter!

В комментариях нам бы хотелось увидеть, а с какими именно проблемами сталкивались Вы и как Вы защищались. Не стесняйтесь. Заранее спасибо.

Источник:  Sebastian’s Pamphlets

Метки: , ,




  • http://www.alik.su Алик Кириллович

    >Другие обманывают веб-браузеры через значение User-agent

    Эта фраза переведена не совсем верно. Обманывают здесь не браузер, а web-сервер владельца сайта.

    Фраза «Others fake Web browsers in their user agent string…» означает, скорее всего, следующее:

    «Другие обманывают web-сервер, представляясь не роботом, а браузером пользователя, с помощью поддельного значения User-agent…»

    Спасибо за ваши переводы!

  • Буржунет

    Большое спасибо за комментарий, Алик, — я пропустил эту фразу, когда редактировал статью, полученную от переводчика. Надеюсь получать от Вас поддержку и впредь. :)

  • http://www.alik.su Алик Кириллович

    >Надеюсь получать от Вас поддержку и впредь
    Рад помочь!

    В разделе «Microsoft/Bing» тоже есть фраза про обман браузера: «Они обманывают браузер в агенте пользователя».

  • Буржунет

    Исправил и это.

  • http://burzhunet.ru Имя (обязательно)

    да, перевод жестокий… поразительно, сколько сейчас развелось вас, таких веб»мастеров». нашару перевести, уникализировать шаблон… генераторы мусора. чем вы сами лучше этих ботов?

  • Буржунет

    Ну отличается, по всей видимости, тем, что контент, который мы «генерим» всё-таки кому-то полезен, что подтверждается растущим числом подписчиков этого блога, а также благодарностями читателей. Я был бы благодарен, если бы были указаны конкретные проблемы в переводе, чтобы мы старались больше их не повторять. Заранее спасибо.

© 2009 Валентин Домбровский