Здраствуйте!
Речь идёт не только о противодействии данному детектору продажных ссылок, но и любому другому, работающему в виде отдельного ресурса, или встроенного в алгоритм поисковика :) Подопытный сайт: www.InComePlus.Ru Я немного был поражен и озадачен алгоритмом, с помощью какового система, в моем случае, правильно определяла механически расставленные ссылки. Вскоростном времени я разобрался, что и по чем, тем d=document;d.write('самым'); самым обезопасил свои ресурсы от строгого стервиса с незвучным названием. Вкратце поясню, принцип работы стервиса. Как, в совпадающем то, и ожидалось, алгоритм оказался до безобразия простым. Получая на вход проверяемую ссылку, сервис подставлял к кодлу мусор в виде вспомогательных параметров, тем самым нагло изменяя линк, каковую сра - внивает саповский скрипт с находящейся в файле links.db Проще говоря, получая на вход подобный линк http//siteru/: сервис загружает сраницу, потом генерит приблизительно грядущий урл http//siteru/vsyakiy_musor=@#$^%&*( и по нему загружает другую страницу. Сравнивает их, берет разность по ссылкам и считает ее подкупной. Выход есть. Делаем так. Как известно, стандартный код Сапы цепляется к сеттингам таким образом: global $mysape;define ('_SAPE_USER',"usersiteidentificator");require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');$sape=new SAPE_client();$mysape=$sape->return_links(); |
Теперь давайте перепишем пару операторов- выделено красным: <?php if (!defined('_SAPE_USER')){ define('_SAPE_USER', 'usersiteidentificator'); } require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); require_once ($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape_free.php'); $sape = new SAPE_client($sape_free); ?> |
Ну и, естественно, в папочку сапы поместим ещё и такой код (Имя файла, как понимаете, sape_free.php) <?php $sape_free=array();# Документы, работающие с глобалом GET: $allowed_pages=array("key.php","ping","remoute");# Разрешённые переменные в УРле иных документов: $allowed_var=array("");$j=explode("?",$_SERVER['REQUEST_URI']);if (isset($j[1]) and $j[0]==str_replace($allowed_pages,"",$j[0])) { $k=preg_match_all("/(.*)=(.*)&/Uis",$j[1]."&",$am);$bm=array();for ($i=0;$i <$k;$i++) {if ($am[2][$i]=="" or !in_array($am[1][$i],$allowed_var)) continue;$bm[]=$am[1][$i]."=".$am[2][$i];} $j[1]=implode("&",$bm);$sape_free['request_uri']= $_SERVER['REQUEST_URI']=($j[1]=="") ? $j[0]: implode("?",$j);}?> |
После употребления этого кода (вызова его перед запуском класса Сапы) Проверяем. Еззз! Дальше сих махинаций чудо сарвис прекратил определять все автолинки. Ну что господа! Кто ещё не в Sape! Бегом регаться, пока ироды каковой нибудь прочий фуки не nридуmали ) А чуть-чуть не забыл. Хочу предупредить, разрешенное намерение работает только на урлах с ЧПУ . На урл типа http://site.ru/index.php?region=ru&ph_game=2147 Необходимо добавить в строчку $allowed_var=array(""); Необходимые переменные. В нашем случае region и ph_game, т.е. строчка будет выглядеть так $allowed_var=array("region, ph_game"); надеюсь понятно объяснил. Если и сейчас не понятно юзайте mod_rewrite, тем больше в знаменитых движках опора ЧПУ ссылок уже является гостом де факто. Короче господа, если что то d=document;d.write('у'); у кого то не заработает – я не виноват. Пред экспериментами советую сделать бэкап скрипта, а превыше счастливо сайта. Эти и другие материалы вы сможете найти на сайте посвященном заработку в интернет : www.InComePlus.Ru |