Как защитить продажные ссылки от поисковиков на примере SAPE и MainLink

Здравствуйте, уважаемые посетители моего блога Курилка.co.ua. Понятно, что с появлением в поисковиках детекторов проверки продажных ссылок жить стало «лучше», жить стало «веселей». Я всё больше поглядываю в сторону дорвеев и автоматически генерируемого контента. Как в песне: «как-то надо же жить, хлеб жевать, воду пить…» — ну и зарабатывать. Так как бизнес в Интернете, остаётся лишь приятным и заманчивым мифом, то в ход идёт всё что можно и нельзя. Однако, попытка не пытка, попробуем защитить продажность ссылок от кровавых ботов поисковых гигантов.

В Интернете существует совсем простенький сервис «Ёбана в рот». Он реализует самый простейший алгоритм проверки сайта на продажность. В чём его суть? Скрипт автоматического размещения платных (продажных) ссылок, выводит те или иные ссылки, основываясь на запрашиваемом URL. Стоит добавить в URL одну, лишнюю переменную и мы получим различие. К примеру:

/

/?vsyakiy_musor=!@#$^%&*()

Как вы видите, два адреса отличаются лишь наличием бесполезной переменной vsyakiy_muso, но для скрипта (SAPE, MainLink и т.п.) этого достаточно, дабы предположить, что открываются две разные страницы. Этим и пользуется детекторы продажных ссылок. Дальше, сравнивая оригинал страницы с тем, куда добавлена лишняя переменная, определяются исчезнувшие ссылки. Если таковые есть они и считаются продажными.

Конечно, надеется на то, что поисковые гиганты, вроде Google, Яндекс и т.п., используют только этот алгоритм, было бы наивно. Однако, лучше подстраховаться и учесть даже такой нюанс.

А вот теперь, о самом интересном: «как защитить продажные ссылки от поисковиков на примере SAPE и MainLink?» Предложенный алгоритм «защиты» достаточно прост: «удаляем из URL запроса передаваемые переменные».

Как защитить платные ссылки в скрипте SAPE?

  1. Открываем файл sape.php.
  2. Находим там функцию load_links(), а в ней строки:// Убиваем PHPSESSID
    if (strlen(session_id())) {
    $session = session_name() . '=' . session_id();
    $this->_request_uri = str_replace(array('?'.$session,'&'.$session), '', $this->_request_uri);
    }
  3. Заменяем или (на всякий случай) ставим после них следующий код:$pos_qs = strpos($this->_request_uri,'?');
    if ( $pos_qs!==false ) $this->_request_uri = substr($this->_request_uri,0,$pos_qs);

    который находит в URL запроса символ вопроса (?) и в случае его наличии оставляет только то, что идёт до него.

Как защитить платные ссылки в скрипте MainLink?

 

  • Открываем файл ML.php.
  • Находим там функцию _PrepairRequest(), а в ней строки:// Убираем сессию
    if(session_id()){$session=session_name()."=".session_id();
    if($this->option[debugmode]) $this->option[debug_info].="Session clear: $session\n";
    //$url = @str_replace($session, '', $url);
    $pattern = "/[?&]?$session&?/i";
    $replacement = '';
    $url = preg_replace($pattern, $replacement, $url);
    }
  • Заменяем или (на всякий случай) ставим после них следующий код:$pos_qs = strpos($url,'?');
    if ( $pos_qs!==false ) $url = substr($url,0,$pos_qs);

    который находит в URL запроса символ вопроса (?) и в случае его наличии оставляет только то, что идёт до него.

 

Недостатки предложенного метода и способы их устранения

Понятно, что такой метод имеет свой существенный недостаток. Так как удаляет не только переменные проверки, но и те которые необходимы для нормальной работы сайта. В этом случае, вы можете получить либо «сквозные ссылки», либо (что более вероятно) вообще отсутствие каких-либо ссылок.

Для решения данной проблемы можно попробовать усложнить алгоритм, оставляя необходимые для работы сайта переменные. Но гораздо проще и выгодней позаботится о ЧПУ, т.е. статичных адресах страниц (без переменных), на которых будут размещаться ссылки. Впрочем, возможно, можно придумать и что-то ещё.

На этом всё. Спасибо за внимание.

Метки:,