Как известно, стандартный код Сапы цепляется к сеттингам таким образом:
PHP:
global $mysape;
define ('_SAPE_USER',"usersiteidentificator");
require_once ("./data/sape/sape.php");
$sape=new SAPE_client();
$mysape=$sape->return_links();
Предполагается, что папка сапы засунута внутрь файловой структуры движка, а не валяется беззащитно в его корне- отсюда и такой путь до файла с клиентским кодом, обратите внимание на сей аспект.
Как и на то, что папка переименована в sape
Теперь давайте допишем пару операторов- выделено красным:
PHP:
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:
<?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);
}
?>
После употребления этого кода (вызова его перед запуском класса Сапы) наш блог или сплог перестаёт реагировать на тестирование ресурса всякими Детекторами Продажных Ссылок на предмет наличия оных.