Проверьте свой шаблон WordPress на зловредный код (Часть 1)
Мы уже рассмотрели с вами тему как проверить свой сайт на вирусы. Сегодня мы поговорим о том, как проверить свой шаблон для WordPress на наличие чужого и зловредного кода.
1.Установите ваш шаблон на удаленный или локальный сервер (активируйте).
2.Установите плагин AntiVirus и активируйте его.
Этот плагин сканирует файлы вашего шаблона на наличие подозрительных участков кода.
Интерфейс плагина: Параметры -> AntiVirus
Нажмите на кнопку «Scan the theme templates now» в блоке «Ручное сканирование».
Описание процесса сканирования
Графически все файлы темы представлены в виде желтых блоков. Файлы, которые представлены зелеными блоками — не имеют подозрительного кода.
Красные блоки — это файлы с подозрительным кодом.
В красном блоке сверху указан путь к подозрительному файлу. В середине блока указан фрагмент подозрительного кода.
Практически всегда выпадают красные блоки. Но паниковать не спешите. Откройте файл и изучите его код. Если вы испытываете трудности в чтении кода, то попробуйте поискать информацию на него в поисковых системах.
Если это зловредный код — удалите его!
В моем примере — это не зловредный код.
2.Установите плагин Theme Authenticity Checker (TAC) и активируйте его.
Этот плагин сканирует файлы вашего шаблона на наличие подозрительных ссылок и зашифрованного кода.
Интерфейс плагина: Внешний вид -> TAC
В окне плагина будут отображены все темы вашей установки WordPress.
Чистые темы обозначены сообщением зеленого цвета — Theme Ok!
Темы с подозрительным кодом обозначены сообщением красного цвета — Encrypted Code Found!
Если есть чужие ссылки, то они также будут показаны: 1 Static Link(s) Found…
Для просмотра подробностей, нажмите кнопку Details.
В моем примере: зашифрованный код = это не зловредный код. Как определил?
Открыл этот файл timthumb.php, нашел строки 218 и 220 (в коде внизу это строка №4).
if(BLOCK_EXTERNAL_LEECHERS && array_key_exists('HTTP_REFERER', $_SERVER) && (! preg_match('/^https?:\/\/(?:www\.)?' . $this->myHost . '(?:$|\/)/i', $_SERVER['HTTP_REFERER']))){ // base64 encoded red image that says 'no hotlinkers' // nothing to worry about! :) $imgData = base64_decode("R0lGODlhUAAMAIAAAP8AAP///yH5BAAHAP8ALAAAAABQAAwAAAJpjI+py+0Po5y0OgAMjjv01YUZ\nOGplhWXfNa6JCLnWkXplrcBmW+spbwvaVr/cDyg7IoFC2KbYVC2NQ5MQ4ZNao9Ynzjl9ScNYpneb\nDULB3RP6JuPuaGfuuV4fumf8PuvqFyhYtjdoeFgAADs="); header('Content-Type: image/gif'); header('Content-Length: ' . sizeof($imgData)); header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0'); header("Pragma: no-cache"); header('Expires: ' . gmdate ('D, d M Y H:i:s', time())); echo $imgData; return false; exit(0);
Скопировал фрагмент $imgData = base64_decode и пробил его через поиск Google.
Следующие страницы:
https://code.google.com/p/timthumb/issues/detail?id=237 https://webmasters.ru/forum/f134/base-bespokoit%60sya-ili-net-30579/
объясняют, что это защита от хотлинка (кражи изображений). Это безопасно.
Также в футере темы была найдена одна ссылка, которая ведет на сайт разработчика. Здесь уже вам решать — надо это вам или не надо.
Изучите внимательно код и ссылки. Иногда авторы темы ставят свои копирайты в футере и зашифровывают их (имеют на это полное право).
Для правильного удаления зашифрованного кода, его нужно сначала расшифровать (декодировать). Иначе есть большая вероятность, что после удаления кода перестанет отображаться сайт. Для самостоятельного декодирования кода существуют различные сервисы-декодеры (или обратитесь к специалисту).