Tools | Homeless In Belarus - Part 3

Защита от сервиса с непристойным названием

24 Декабрь 2007 | В рубриках sape, service, tools

или Окапываемся в SAPE (часть 3)

После нахождения в сети злополучного для всех саповцев сервиса определения продажных ссылок, и даже подняв вокруг него небольшую шумиху на ньюсе2.ру (отдельное спасибо s13 за размещение новости). Я несколько был поражен и озадачен алгоритмом, с помощью которого система, в моем случае, безошибочно определяла автоматически расставленные ссылки. В скором времени я разобрался, что и по чем, тем самым обезопасил свои ресурсы от грозного сервиса с незвучным названием.

Вкратце поясню, принцип работы сервиса для тех, кто в бронетранспортёре.

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

Проще говоря, получая на вход такой линк http://site.ru/, сервис загружает сраницу, затем генерит примерно следующий урл http://site.ru/?vsyakiy_musor=!@#$^%&*() и по нему загружает вторую страницу. Сравнивает их, берет разность по ссылкам и считает ее продажной.

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

Расскажу что я сделал для того чтобы обмануть сервис. Для этого залез в sape.php

С помощью метода тыка и добрался до этого блока.

...  // Убиваем PHPSESSID  if (strlen(session_id())) {    $session = session_name() . '=' . session_id();    $this->_request_uri = str_replace(array('?'.$session,'&'.$session), '', $this->_request_uri);  }...

В данном блоке производится выкашивание из $this->_request_uri идентификатора сессии. И мне показалось данная операция является очень схожей с той которая нам нужна. Только в моем случае надо убивать не только сессию, но и все что приходит после символа ‘?’.

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

  $this->_request_uri = preg_replace('/\?\S*/',"",$this->_request_uri);

Сохранил изменения. Проверяю…

Еззз! После этих манипуляций чудо-сервис прекратил определять все автоговнолинки.

Ну что господа?! Кто ещё не в Sape?! Бегом регаться, пока ироды какой-нибудь другой бяки не придумали :)

А чуть не забыл. Хочу предупредить, данное решение работает только на урлах без параметров и/или поверх ЧПУ-ссылок. То есть если сравниваемые урлы будут с параметрами, то задача по противостоянию усложняется в разы. Как я вижу, нужно будет определять все допустимые параметры и с помощью тех же регулярных выражений, но более извращенных, производить их фильтрацию. Но это охрененное усложнение. Лучше и проще, на мой взгляд, юзать mod_rewrite, тем более в популярных движках поддержка ЧПУ-ссылок уже является стандартом де-факто.

Ещё на всякий случай, сниму всю ответственность за неправильное истолкование и использование представленной здесь информации. Короче люди, если что-то у кого-то не заработает – я не виноват. Перед экспериментами советую сделать бэкап скрипта, а лучше всего сайта.

Сервис определения продажных ссылок

1 Декабрь 2007 | В рубриках question, sape, tools

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

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

И шо ви думаите.

Зараза-сервис, плевать хотел на все мои мегаэнтропийные ссылки и со свистом определил факт продажности, вдобавок вывел их на экран.

Сарказм и улыбка сменилась озадаченностью и озабоченностью.

Я проверил ещё …

И ещё …

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

Сервис безошибочно выдал на экран все говнолинки, автоматические расставленные Сапой. Ссылку расставленную вручную - проигнорировал.

Только после этого эксперимента в глаза бросилась ключевая фраза сервиса: Система не определяет продажные ссылки расставленные вручную.

Как же так? Какие будут соображения, господа гусары?

ЗЫ. Если поисковые системы возьмут на вооружение алгоритм данного сервиса (если, конечно, уже не взяли), то можно готовиться к не самым хорошим временам. Так что, пока не поздно быстренько регаемся в системе и гребём балабасы рыдлеўкамi ;)

Окапываемся в SAPE (часть вторая)

18 Ноябрь 2007 | В рубриках monetization, sape, service, tools

или увеличиваем энтропию говнолинков

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

Рассмотрим представленный ниже блок ссылок в качестве примера:

стринговые труселя квартиру застрахуй в Австралии пластиковые окна из мозаики, голые телки валяльня тормозные мыши колодки

Если поисковый робот, наткнувшись на такой блок ссылок, не вывалиться в эпилептическом экзепшене, то с большой вероятностью сайт попадет под карандаш поисковика.

Наша задача как можно больше растворить линки в релевантном околоссылочном контенте, тем самым в среднем уменьшив концентрацию говонолинков на странице сайта. За основу я взял все ту же статью ЛенОблБомжа, о которой я упоминал в предыдушем посте о своем знакомстве с Сапой. Только в моем случае я не разделяю на отдельные блоки, а генерирую более менее осмысленные предложения с саповскими ссылками и вывожу их случайным образом на страницу. Хотя ничто не мешает объединить эти две функциональности в одно целое и ещё больше замаскироваться и защитится от всевозможных песочниц.

Замечу, что PHP не мой родной язык, на котором я думаю, разговариваю, и брежу во сне, так что за качество кода не ручаюсь.

<?php// Этот код можно забубендить в началоglobal $sape;define('_SAPE_USER', 'xxx'); // xxx заменить на нужный кодrequire_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');$sape = new SAPE_client();

// генератор говноссылочных фразfunction generate_phrases($count_links=0) {  global $sape;  // массив фраз    $phrases = array(1=>        'Культ джайнизма включает в себя %s и поклонение Махавире.',      'Гравитационный парадокс, по определению не учитывает мнение, однако допускает %s. ',      'Гештальт многопланово притягивает %s, прослеживая методологию во многих сущностях.',      'Чем больше фраз в этом массиве, тем меньше концентрация говнолинков, таких как %s');   // пробегаем по всем ссылкам  for ($i = 0; $i < $count_links; $i++) {   // выбираем рандомом индекс в массиве фраз   $indx = rand(1,count($phrases));   if (!isset($phrases[$indx])) {      // если уже удален из массива, берем сначало по порядку другой индекс     for ($j = 1; $j <= count($phrases); $j++) {      if (isset($phrases[$j])) { // снова проверим        $indx = $j;        break; //нах с цикла      }     }   }    $link = "<span style='text-transform: lowercase;'>".$sape->return_links(1)."</span>";   $phrase = $phrase.sprintf($phrases[$indx],$link).".";      // удаляем нах из массива   unset($phrases[$indx]);  }  return $phrase; //вяртаем в зад :)} ?>

...

<?php // Этот код вставляем туда, где нам надо отобразить ссылки// Сначало проверяем есть ли вааще ссылки на этой странице$count_links = count($sape->_links_page);if ($count_links > 0) { // если есть ссылки, то отображаем их?><div> <h1>Новости</h1> <div><?php echo generate_phrases($count_links); ?></div></div><?php } ?>

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

Если надумаете воспользоваться этим мегакодом, не забудьте сначала зарегистрироваться в Сапе, а то ничё не получится :)

Удачи Вам.

3 из 4«1234»
Онлайн-подшивка журналов Xakep

О проекте

Bum Я бычок подниму горький дым затяну, люк открою, полезу домой ... (с)
Все о проекте >>>



rss

Читать через Google | Читать через Яндекс | Рассылка почтой