Вы установили код SAPE на свой сайт, замаскировали его всякими "Партнёры, Спонсоры, Полезное" и прочее и думаете ВСЁ?
Как бы ни так! Все Ваши труды могут пропасть в одночасье! Достаточно только одного захода на Ваш сайт бота с проверкой на предмет наличия продажных ссылок и прощай заработок, прощай трафик, прощай сайт...
Как быть, есть ли лекарство?
Конечно!
Давайте для начала проверим Ваш сайт на предмет видимости продажных ссылок!
Для этого сначала найдем страницу с заведомо проданной ссылкой и скопируем URL в буфер. Теперь идем СЮДА и вставляем адрес страницы в форму и о боже мы видим наши ссылки...
Речь в данной статье идёт не только о противодействии данному детектору продажных ссылок, но и любому другому. Работающему в виде отдельного ресурса, или встроенного в алгоритм поисковика :) Неважно.
Идем в папку ХЕШ_КОДА и открываем любым редактором файл sape.php
Поиском находим строчку содержащую PHPSESSID или просто 320 строку скрипта.
Тут мы увидим следующее:
// Убиваем PHPSESSID
if (strlen(session_id())) {
$session = session_name() . '=' . session_id();
$this->_request_uri = str_replace(array('?'.$session,'&'.$session), '', $this->_request_uri);
}
Теперь давайте допишем одну строчку в код программы - выделено красным:
// Убиваем PHPSESSID
if (strlen(session_id())) {
$session = session_name() . '=' . session_id();
$this->_request_uri = str_replace(array('?'.$session,'&'.$session), '', $this->_request_uri);
$this->_request_uri = preg_replace('/?S*/',"",$this->_request_uri);
}
После внесения этих изменений в коде скрипта SAPE, все попытки определить всякими Детекторами Продажных Ссылок на предмет наличие оных на Вашем ресурсе становятся безрезультатными.
Для тех кому интересно как это работает:
Итак принцип работы сервиса для тех, кто в бронетранспортёре.
Как, в общем-то, и ожидалось, алгоритм оказался до безобразия простым. Получая на вход исследуемую ссылку, сервис подставлял к урлу мусор в виде дополнительных параметров, тем самым нагло изменяя ссылку, которую сравнивает саповский скрипт с находящейся в файле links.db.
Проще говоря, получая на вход такой линк http://site.ru/, сервис загружает страницу, затем генерит примерно следующий урл http://site.ru/?vsyakiy_musor=!@#$^%&*() и по нему загружает вторую страницу. Сравнивает их, берет разность по ссылкам и считает ее продажной.
Зная этот ключевой момент, просто делаем так чтобы саповский скрипт правильно сравнивал полученный урл с имеющемся с базе линков.
В данном блоке производится выкашивание из $this->_request_uri идентификатора сессии. Данная операция является очень схожей с той которая нам нужна. Только в нашем случае надо убивать не только сессию, но и все что приходит после символа ‘?’.
Спасибо автору идеи Bum за предоставленный материал Защита от сервиса с непристойным названием.
З.Ы. Я так же присоединяюсь к посланию ко всем вебмастерам от Bum:
Ещё на всякий случай, сниму всю ответственность за неправильное истолкование и использование представленной здесь информации. Короче люди, если что-то у кого-то не заработает – я не виноват. Перед экспериментами советую сделать бэкап скрипта, а лучше всего сайта.
Желаю заработать миллион баксов!
Будет интересно посмотреть...

