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

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

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, тем более в популярных движках поддержка ЧПУ-ссылок уже является стандартом де-факто.

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

10 комментариев прокомментировали «Защита от сервиса с непристойным названием»

Anonymous пишет,
24 Декабрь 2007 в 21:44    

Вот жеж сволочи. Как бы вас всех, блядей, повывести?.. Я бы вот, например, за генерацию мусорного контента в сети ввёл смертную казнь через захоронение живьём на крупных городских свалках.

Anonymous пишет,
25 Декабрь 2007 в 09:46    

аноним, тебе лечиться пора.

Доброжелатель пишет,
25 Декабрь 2007 в 19:02    

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

Юзайте модрерайт и 404 ошибку для несуществующих страниц – и будет вам счастье.

bum пишет,
25 Декабрь 2007 в 19:20    

2 Доброжелатель:
…рождает сквозные ссылки вместо обычных…
Можно ли уточнить, что вы подразумеваете под сквозными ссылками?

Энергетик пишет,
19 Январь 2008 в 18:39    

Мдя, не совсем понятно что Доброжелатель хотел донести до народа, говоря о «ссылочном». Чего «ссылочном»?

samsonych пишет,
19 Январь 2008 в 18:50    

Ну c модрерайтом всё понятно.
А вот 404 ошибку юзать. Это как?
Может кто подскажет?

provocateur-b пишет,
4 Февраль 2008 в 10:23    

А вы читали новости? Sape снова нас порадовал.

rEd пишет,
2 Апрель 2008 в 17:41    

Доброжелатель советует настроить свой сайт так, чтобы запрос _любого_ несанкционированного УРЛа возвращал 404ю. Это решит не только проблему с определением проданых ссылок алгоритмом сервиса, но и проблему дублированного контента на самом сайте (т.е. страниц с разным адресом но одинаковым содержимым).

Евгений пишет,
3 Май 2008 в 20:11    

Спасибо за эту публикацию! Не прошло и полгода, как я ее нашел :)

В своем блоге я написал, как защититься с учетом передаваемых странице параметров. Если интересно, взгляните.

Anonymous пишет,
25 Май 2010 в 05:09    

незнаю как в 2007 году работало єто предложение, но попробовал счас, ссилки не считаются продажними потому что они ваше не показиваются))) наверное понятно что такой вариант в сапе не канает, да и негде неканает)

Оставьте свой комментарий

 Имя

 Почта

 Сайт

Я не робот.

Пожалуйста, дважды проверяйте свои комментарии перед отправкой Внимание: активна процедура проверки, так что нет необходимости добавлять комментарий повторно

1 из 0
FeedMaster - Система автонаполнения контентом

О проекте

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



rss

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