пятница, 28 декабря 2007 г.

Как защитить свой сайт от детектирования в нём продажных ссылок?

Как защитить свой сайт от детектирования в нём продажных ссылок?

Речь идёт не только о противодействии нашему детектору продажных ссылок, но и любому другому. Работающему в виде отдельного ресурса, или встроенного в алгоритм поисковика :) Неважно.

Давайте для примера не позволим определиться продажным ссылкам на сайтах, построенным на популярном движке LastoBlog, а заодно и на сплоговом движочке LastoSplog тоже.

Как известно, стандартный код Сапы цепляется к сеттингам таким образом:

global $mysape;

define ('_SAPE_USER',"usersiteidentificator");
require_once ("./data/sape/sape.php");
$sape=new SAPE_client();
$mysape=$sape->return_links();

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

Как и на то, что папка переименована в sape.

Теперь давайте допишем пару операторов- выделено красным:

global $mysape;
define ('_SAPE_USER',"usersiteidentificator");
require_once ("./data/sape/sape.php");
require_once ("./data/sape/sape_venality_name.php");
$sape=new SAPE_client($sape_venality_name);
$mysape=$sape->return_links();

Ну и, естественно, в папочку сапы поместим ещё и такой код (имя файла, как понимаете, sape_venality_name.php)

<?php

   $sape_venality_name=array();

# Документы, работающие с глобалом GET:
   $allowed_pages=array("key.php","ping","remoute");

# Разрешённые переменные в УРле иных документов:
   $allowed_var=array("");

$tm=explode("?",$_SERVER['REQUEST_URI']);
if (isset($tm[1]) and $tm[0]==str_replace($allowed_pages,"",$tm[0])) {
   $k=preg_match_all("/(.*)=(.*)\&/Uis",$tm[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];
   }
   $tm[1]=implode("&",$bm);
   $sape_venality_name['request_uri']=
   $_SERVER['REQUEST_URI']=($tm[1]=="") ? $tm[0]: implode("?",$tm);
}

?>

После употребления этого кода (вызова его перед запуском класса Сапы) наш блог или сплог перестаёт реагировать на тестирование ресурса всякими Детекторами Продажных Ссылок на предмет наличия оных.

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

Тюнинг кода Сапы :)

При внешнем управлении работой клиентского кода Сапы иногда требуется оговорить кодировку, или ещё ряд каких моментов. Стандартно контора в этом случае советует сформировать массив с любым именем, сотворить в массиве нужные ключики, и присвоить им необходимые значения, а потом отдать массив классу. Но, как явствует из распечатки кода с красненькими строчками, мы уже скармливаем классу какой-то массив. И куда же засовывать кодировку?

Разберём для примера ситуацию, когда Ваш сайт на UTF.

В этом случае в промежутке между запуском спасательного кода и отдачей результатов его труда классу, нужно вклинить в родившийся массивчик нужный ключик, в полном соответствии с рекомендациями конторы:

global $mysape;
define ('_SAPE_USER',"usersiteidentificator");
require_once ("./data/sape/sape.php");
require_once ("./data/sape/sape_venality_name.php");
$sape_venality_name['charset']='UTF-8';
$sape=new SAPE_client($sape_venality_name);
$mysape=$sape->return_links();

Нужны другие ключики? Вклинивайте по аналогии.

Когда продажные ссылки не от Сапы

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

require_once ("./data/sape/sape_venality_name.php");

Естественно, в данном документе мы рассматриваем исключительно камуфлирование продажных ссылок на указанных в начале документа движках, а также очень на них похожих. В противном случае чтение Вами этого документа ничем не оправдано.

Автор: Вадим Ласто.




Другие посты по этой теме:



0 коммент.:

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

Ваш комментарий появится в блоге после проверки администратором