Проверка темы. Как удалить вирус или вредоносный код из WordPress? Проверить тему wordpress

Прежде, чем разбираться, как очистить сайт WordPress, необходимо понять, а с чем, собственно, мы будем иметь дело. В широком смысле понятие “вирус” обозначает вредоносное программное обеспечение, способное нанести тот или иной ущерб владельцу веб-ресурса. Таким образом, в эту категорию можно отнести практически любой код, встроенный злоумышленниками в скрипты движка. Это могут быть скрытые ссылки, приводящие к пессимизации в поисковой выдаче, бэкдоры обеспечивающие хакеру админский доступ, или сложные конструкции, превращающие площадку в узел зомби-сети, и даже майнер биткойнов. О том, как выявлять и устранять вирусы разнообразного калибра, а также защищаться от них, мы и поговорим.

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

1. Установите надежный антивирус

Вредоносная программа может быть внедрена не только извне — источником заражения вполне способен оказаться компьютер, с которого осуществляется администрирование проекта. Современные трояны могут не только похитить пароль от FTP, но и самостоятельно загрузить исполняемый код, или модифицировать файлы CMS, а значит, от защищенности вашей рабочей машины напрямую зависит сохранность веб-ресурса.

IT-рынок предлагает множество антивирусов. Тем не менее, наиболее разумный выбор — продукты крупных компаний:
● Среди отечественных лидирующие позиции занимают предложения лаборатории Касперского и Dr. Web.
● В числе зарубежных коммерческих решений можно выделить линейку Norton от корпорации Symantek и популярный ESET NOD;
● Если же говорить о бесплатных вариантах, то здесь безоговорочно лидируют Avast и Comodo.

2. Сканируйте сайт с помощью онлайн-сервисов

При обнаружении подозрительной активности (ошибки движка, тормоза, появление всплывающих окон и сторонних баннеров), самое простое, что можно придумать — прогнать ресурс через онлайн-сканер, способный определить факт заражения. Бесспорным лидером здесь является VirusTotal, расположенный по адресу virustotal.com. Чтобы им воспользоваться, достаточно перейти на вкладку “URL-адрес”, вбить интересующую ссылку и нажать на кнопку “Проверить!”

Через некоторое время система выдаст отчет следующего содержания:

Следует уточнить: VirusTotal — не независимый проект, а своеобразный агрегатор антивирусных сканеров. В связи с этим появляется возможность проверить WordPress на вирусы одновременно в 67 системах. Несомненным преимуществом является подробный отчет, в котором приводятся данные по всем поддерживаемым сервисам. Ведь антивирусы очень любят бить ложную тревогу, так что даже если показатель выявления отличается от идеального (например, 3/64), это еще не значит, что ресурс заражен. Ориентируйтесь, прежде всего, на крупных игроков (Kaspersky, McAfee, Symantec NOD32 и другие), небольшие конторы часто определяют те или иные участки кода, как опасные — не стоит принимать это всерьез!

3. Используйте Яндекс.Вебмастер

Вы наверняка обращали внимание, что некоторые ссылки в поисковой выдаче снабжаются предупреждающим сообщением: “Сайт может угрожать вашему компьютеру или мобильному устройству”. Дело в том, что поисковик имеет собственные алгоритмы обнаружения вредоносного кода, оповещая пользователей о потенциальном риске. Чтобы быть в курсе происходящего и получать уведомления первым, достаточно зарегистрироваться в сервисе Вебмастер. Посмотреть всю необходимую информацию можно на вкладке “Безопасность”:

В случае обнаружения угрозы, здесь будут выводиться сведения о зараженных страницах. К сожалению, избирательная проверка WordPress на вирусы невозможна — Яндекс осуществляет сканирование самостоятельно, к тому же, в выборку попадают отнюдь не все загруженные веб-документы, а лишь их часть, определяемая случайным образом.

4. Сверяйтесь с отчетами Google

Самая популярная поисковая система в мире предлагает еще более простой способ мониторинга — достаточно перейти по ссылке google.com/transparencyreport/safebrowsing/diagnostic/?hl=ru, и вбить адрес интересующего сайта в соответствующее поле. Вы получите исчерпывающие данные по ресурсу, и увидите, имеются ли у Гугла какие-либо претензии с точки зрения обнаружения вредоносных скриптов:

Как почистить сайт Водпресс от вирусных ссылок?

От общих рекомендаций перейдем к частным. Начнем же с распространенных вариантов вредоносного кода — внедрения посторонних URL и редиректов на целевой веб-ресурс. К сожалению, черное СЕО все еще популярно, а значит и хакеры не сидят без дела, благо эта задача — одна из самых простых. Давайте разбираться по порядку.

1. Редирект на сторонние ресурсы

Представьте ситуацию: вы заходите на собственный сайт, однако вас тут же перекидывает на очередной каталог “досуга”, или лэндинг, предлагающий заработать на Форекс. Почти наверняка это означает, что веб-ресурс был взломан, а в.htaccess появилось несколько новых строчек. Лечение элементарно: открываете файл, находите директивы, содержащие адрес, на который идет перенаправление, а затем удаляете их. Так, для условного malwaresite.com нужные конструкции могут быть таковы:

< IfModule mod_alias. c> Redirect 301 https: //сайт/ http://malwaresite.com/

RewriteEngine On RewriteBase / RewriteCond % { HTTP_HOST} ! ^tekseo\. su [ NC] RewriteRule ^(.* ) http: //malwaresite.com/$1

RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^tekseo\.su RewriteRule ^(.*) http://malwaresite.com/$1

Более изощренный вариант — постоянный редирект, написанный на PHP. Если вы проверили , но не нашли ничего подозрительного, скорее всего загвоздка кроется в файле index.php. Перенаправление здесь осуществляется путем отправки посетителю нужных заголовков:

include("redirect.php"); exit();

Запомните — в оригинальном index.php таких фрагментов не встречается, так что можете смело удалять их все. Также найдите и ликвидируйте подключаемый файл (в нашем примере это будет redirect.php, расположенный в корневой папке).

Более хитрый ход — редирект для мобильных гаджетов. Заходя на свой ресурс с персонального компьютера, вы никогда не выявите факт заражения, однако пользователи смартфонов и планшетов будут неприятно удивлены, попав на другую страничку. Такое перенаправление можно реализовать:

1. .htaccess
Наиболее простой способ, который без труда вычисляется. Устройство определяется по предъявляемому User Agent. Выглядеть может так:

< IfModule mod_rewrite. c> RewriteEngine on RewriteBase / RewriteCond % { HTTP_USER_AGENT} ^.* (ipod| iphone| android) .* [ NC] RewriteRule ^(.* ) $ http: //malwaresite.com/

RewriteEngine on RewriteBase / RewriteCond %{HTTP_USER_AGENT} ^.*(ipod|iphone|android).* RewriteRule ^(.*)$ http://malwaresite.com/

2. PHP
Похожим образом редирект реализуется и на PHP. Конструкцию, указанную ниже, можно найти в индексном файле. Опять же не забываем о вездесущих include:

3. JavaScript
Здесь идет проверка разрешения экрана, если ширина составляет 480 пикселей, или менее, посетителя перебрасывают на вредоносный сайт. Если на вашем проекте используется аналогичный метод, обязательно проверьте этот блок на предмет изменения адреса.

< script type= "text/javascript" > if (screen. width "TAC" затем дождитесь пока все темы будут проверены.

2. VIP Scanner

Очень похожий на TOC сканер для тем, но выводит больше подробной информации. Те же самые возможности по обнаружению ссылок, скрытого кода и других вредоносных вставок. Просто откройте пункт VIP Scaner в разделе инструменты и анализируйте результат.

Возможно, достаточно удалить лишние файлы, например, desktop.ini. Или же нужно более подробно посмотреть что происходит в файлах использующих base64.

3. Anti-Malware from GOTMLS.NET

Этот плагин позволяет не только сканировать темы и ядро сайта на наличие вирусов, но и защищать сайт от перебора паролей и различных XSS, SQLInj атак. Поиск выполняется на основе известных сигнатур и уязвимостей. Некоторые уязвимости можно на месте устранять. Чтобы начать сканировать файлы откройте "Anti-Malvare" в боковом меню и нажмите "Run Scan" :

Перед тем как вы сможете запустить сканирование, нужно обновить базы данных сигнатур.

4. Wordfence

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

Откройте вкладку "WPDefence" в боковом меню, а затем перейдите на вкладку "Scan" и нажмите "Start Scan" :

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

5. AntiVirus

Это еще один простой плагин, который просканирует ваш шаблон сайта на наличие вредоносного кода. Недостаток в том, что сканируется только текущий шаблон, но информация выводится достаточно подробно. Вы увидите все опасные функции, которые есть в теме и затем можете детально проанализировать представляют ли они какую-либо опасность. Найдите пункт "AntiVirus" в настройках, а затем нажмите "Scan the theme templates now":

6. Integrity Checker

Также желательно проверить целостность файлов WordPress, на случай, если вирус уже записался уже куда-нибудь. Для этого можно использовать плагин Integrity Checker. Он проверяет все файлы ядра, плагинов и шаблонов на изменения. В конце сканирования вы увидите информацию об измененных файлах.

Онлайн сервисы

Существует также несколько онлайн-сервисов, которые позволяют проверить сайт wordpress на вирусы или проверить только шаблон. Вот некоторые из них:

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

virustotal.com - всем известный ресурс, где вы можете проверить свой сайт или файл шаблона на вирусы.

ReScan.pro - проверка WordPress сайта на вирусы с помощью этого сервиса бесплатна, выполняется статический и динамический анализ, чтобы обнаружить возможные редиректы сканер открывает страницы сайта. Проверяет сайт по различным черным спискам.

sitecheck.sucuri.net - простой сервис для сканирования сайта и тем на вирусы. Есть свой плагин для WordPress. Обнаруживает опасные ссылки и скрипты.

Ручная проверка

Ничего не может быть лучше чем ручная проверка. В Linux есть такая замечательная утилита grep, которая позволяет искать вхождения произвольных строк в папке с файлами. Осталось понять что мы будем искать:

eval - эта функция позволяет выполнять произвольный php код, ее не используют уважающие себя продукты, если один из плагинов или тема используют эту функцию почти со стопроцентной вероятностью можно сказать, что там есть вирус;

  • base64_decode - функции шифрования могут использоваться вместе с eval, чтобы спрятать вредоносный код, но они могут применяться и в мирных целях, так что будьте внимательны;
  • sha1 - еще один метод шифрования вредоносного кода;
  • gzinflate - функция сжатия, те же цели, вместе с eval, например, gzinflate(base64_decode(код);
  • strrev - переворачивает строку задом не перед, как вариант может использоваться для примитивного шифрования;
  • print - выводит информацию в браузер, вместе с gzinflate или base64_decode опасно;
  • file_put_contents - сам WordPress или плагины еще могут создавать файлы в файловой системе, но если это делает тема, то уже стоит насторожиться и проверить зачем ей это, так могут устанавливаться вирусы;
  • file_get_contents - в большинстве случаев используется в мирных целях, но может использоваться для загрузки вредоносного кода или чтения информации из файлов;
  • curl - та же история;
  • fopen - открывает файл для записи, мало ли для чего;
  • system - функция выполняет команду в системе Linux, если это делает тема, плагин или сам wordpress, скорее всего, там вирус;
  • symlink - создает символические ссылки в системе, возможно, вирус пытается сделать основную файловую систему доступной из вне;
  • copy - копирует файл с одного места в другое;
  • getcwd - возвращает имя текущего рабочего каталога;
  • cwd - изменяет текущую рабочую папку;
  • ini_get - получает информацию о настройках PHP, чаще в мирных целях, но мало ли;
  • error_reporting(0) - отключает вывод любых сообщений об ошибках;
  • window.top.location.href - javascript функция, используемая для редиректов на другие страницы;
  • hacked - так, на всякий случай, проверяем, вдруг, хакер сам нам решил рассказать.

Вы можете подставлять каждое отдельное слово в такую команду:

grep -R "hacked" /var/www/путь/к/файлам/wordpress/wp-content/

Или же использовать простой скрипт, который будет искать все слова за раз:

values="base64_decode(
eval(base64_decode
gzinflate(base64_decode(
getcwd();
strrev(
chr(ord(
cwd
ini_get
window.top.location.href
copy(
eval(
system(
symlink(
error_reporting(0)
print
file_get_contents(
file_put_contents(
fopen(
hacked"

cd /var/www/путь/к/файлам/wordpress/wp-content/
$ fgrep -nr --include \*.php "$values" *

Вас когда-то интересовало, какую тему оформления использует тот или иной сайт?

Часто в поисках идеальной темы мы смотрим на уже другие реализованные проекты, чтобы найти что-то похожее или сделать свой сайт на такой же теме, только со своим индивидуальным оформлением.

В этом уроке мы покажем, какие инструменты и трюки можно применить, чтобы узнать, какую тему оформления использует этот сайт на WordPress.

Способ 1. Сайт проверки IsItWP

Самый простой способ - это зайти на isitwp.com и проверить там сайт, который вас интересует.

Это онлайн-инструмент, который покажет вам, какую тему использует WordPress, и используется ли вообще WordPress на этом сайте.

Если на сайте стоит WordPress, IsItWP попытается узнать имя текущей темы оформления.

Также он попытается узнать, какие активные плагины используются на сайте:

Если вам повезло, и это не кастомная или дочерняя тема, то IsItWP выдаст ее название, и дальше вы можете найти эту тему в поисковиках.

Способ 2. Определяем вручную

Иногда владельцы сайта или разработчики меняют название родной WordPress темы. В таком случае инструменты вроде IsItWP не смогут вам помочь.

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

Давайте посмотрим.

Каждая тема оформления WordPress обязана иметь файл style.css . Этот файл содержит внутри заголовок (header), в котором, как правило, указано имя темы, автор темы, версия и сайт-разработчик темы. Также там указываются другие шаблоны css-стилей, которые использует тема.

Чтобы найти этот файл, для начала нужно зайти на сам сайт. Кликните правой кнопкой где-то на главной странице и перейдите к просмотру исходного кода (View Page Source ).

В браузере в новой вкладке откроется исходный код главной страницы сайта.

Теперь вам нужно найти строчку кода, которая выглядит примерно так:

Чтобы облегчить задачу, можно выполнить Поиск по этой вкладке с кодом по фрагменту "themes ". Это часть из директории, где лежит style.css .

Таким образом вы найдете путь, по которому лежит файл style.css, и сможете открыть этот файл прямо в браузере в новой вкладке.

В верхней части style.css будет находиться шапка с заголовком (о котором мы говорили выше). Это сервисная информация о теме оформления. Выглядит это примерно так:

/* Theme Name: Theme Name Theme URI: https://example.com Author: ThemeAuthorName Author URI: https://example.com Description: My Theme is a flexible WordPress theme designed for portfolio websites Version: 1.1.47 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: hestia Tags: blog, custom-logo, portfolio, e-commerce, rtl-language-support, post-formats, grid-layout, one-column, two-columns, custom-background, custom-colors, custom-header, custom-menu, featured-image-header, featured-images, flexible-header, full-width-template, sticky-post, theme-options, threaded-comments, translation-ready */

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

Способ 3. Как найти родительскую тему

Многие сайты используют дочерние темы для пользовательской настройки оформления. И это вполне правильный подход.

В таком случае, если вы отыскали файл style.css от дочерней темы, в его шапке будет указана информация о родительской теме:

/* Theme Name: My Child Theme Description: Just a child theme Author: Peter Smith Author URL: Write here the author"s blog or website url Template: hestia Version: 1.0 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: my-child-theme */

В примере выше на родительскую тему указывает параметр "Template ", то есть для этой дочерней темы используется родительская тема "Hestia".

Также о родительской теме можно узнать из исходного кода, описанного в Способе 2. В коде вы найдете отсылку к файлу style.css не только от дочерней темы, но и от родительской темы.

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

The theme check plugin is an easy way to test your theme and make sure it’s up to spec with the latest theme review standards. With it, you can run all the same automated testing tools on your theme that WordPress.org uses for theme submissions.

The tests are run through a simple admin menu and all results are displayed at once. This is very handy for theme developers, or anybody looking to make sure that their theme supports the latest WordPress theme standards and practices.

Как активировать форматирование trac

The Theme Review team use this plugin while reviewing themes and copy/paste the output into trac tickets, the trac system has its own markup language.
To enable trac formatting in Theme-Check you need to define a couple of variables in wp-config.php:
TC_PRE and TC_POST are used as a ticket header and footer.
Examples:
define(‘TC_PRE’, ‘Theme Review:[]
— Themes should be reviewed using «define(\’WP_DEBUG\’, true);» in wp-config.php[]
— Themes should be reviewed using the test data from the Theme Checklists (TC)
——
‘);

Define("TC_POST", "Feel free to make use of the contact details below if you have any questions, comments, or feedback:[] [] * Leave a comment on this ticket[] * Send an email to the Theme Review email list[] * Use the #wordpress-themes IRC channel on Freenode.");

If either of these two vars are defined a new trac tickbox will appear next to the Check it! button.

Часто задаваемые вопросы What’s with the version numbers?

The version number is the date of the revision of the guidelines used to create it.

Why does it flag something as bad?

It’s not flagging «bad» things, as such. The theme check is designed to be a non-perfect way to test for compliance with the Theme Review guidelines. Not all themes must adhere to these guidelines. The purpose of the checking tool is to ensure that themes uploaded to the central WordPress.org theme repository meet the latest standards of WordPress themes and will work on a wide variety of sites.

Many sites use customized themes, and that’s perfectly okay. But themes that are intended for use on many different kinds of sites by the public need to have a certain minimum level of capabilities, in order to ensure proper functioning in many different environments. The Theme Review guidelines are created with that goal in mind.

This theme checker is not perfect, and never will be. It is only a tool to help theme authors, or anybody else who wants to make their theme more capable. All themes submitted to WordPress.org are hand-reviewed by a team of experts. The automated theme checker is meant to be a useful tool only, not an absolute system of measurement.

This plugin does not decide the guidelines used. Any issues with particular theme review guidelines should be discussed on the Make Themes site .

Отзывы

This is a great plugin for everyone that really likes to develop a WordPress theme and make successfully tests for the basic WordPress standards. The errors separated in "Required", "Warning", "Recommended" and "info". Also provide the basic information of this error and makes you understand where the problem is.

Участники и разработчики

«Проверка темы» - проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники Журнал изменений 20190801.1
  • Fix missing nonce and nonce check on admin page. props Steven Stern for reporting the issue to the plugins team. Though this is technically a CSRF, there is no vulnerability arising from it, as the only thing that could be done with the form is to scan a theme.
20190208.1
  • Add new styles for the block editor. See https://meta.trac.wordpress.org/ticket/3921
20160523.1
  • Fix for theme-names with dashes in them
  • Comments stripping changes
  • Many changes by the theme review team and others. See Github for full change list.
20151211.1
  • Full sync with Github and all the changes that have happened there.
  • Release for 4.4 deprecated functions.
20140929.1
  • Added new checks and updates from Frank Klein at Automattic. Thanks Frank!
  • Updated deprecated function listings
  • Customizer check: All add_settings must use sanitization callbacks, for security
  • Plugin territory checks: Themes must not register post types or taxonomies or add shortcodes for post content
  • Widgets: Calls to register_sidebar must be called from the widgets_init action hook
  • Title: tags must exist and not have anything in them other than a call to wp_title()
  • CDN: Checks for use of common CDNs (recommended only)
  • Note: Changed plugin and author URIs due to old URIs being invalid. These may change again in the future, the URIs to my own site are temporarily only.
20131213.1
  • Corrected errors not being displayed by the plugin and it incorrectly giving a «pass» result to everything.
20131212.1
  • Updated for 3.8
  • Most files have changed for better I18N support, so the language files were removed temporarily until translation can be redone.
20121211.1
  • Updated for 3.5
  • Remove Paypal button.
20110805.1
  • TimThumb checks removed.
  • Screenshot now previewed in results, with filesize and dimensions.
20110602.2
  • New file list functions hidden folders now detectable.
  • Better fopen checks.
  • TimThumb version bump
20110602.1
  • DOS/UNIX line ending style checks are now a requirement for proper theme uploading.
  • Timthumb version bump
  • Several fixes reported by GaryJ
  • 3.2 deprecated functions added
20110412.1
  • Fix regex’s
  • Added check for latest footer injection hack.
  • Fix tags check to use new content function correctly
  • Sync of all changes made for wporg uploader theme-check.
  • Updated checks post 3.1. added screenshot check to svn.
  • Fix links check to not return a false failure in some cases
  • rm one of the checks that causes problems on wporg uploader (and which is also unnecessary)
  • Move unneeded functions out of checkbase into main.php.
  • Minor formatting changes only (spacing and such)
  • Add check for wp_link_pages() + fix eval() check
20110219.2
  • Merged new UI props Gua Bob
  • Last tested theme is always pre-selected in the themes list.
  • Fixed php error in admin_menu.php
20110219.1
  • See commit log for changes.
20110201.2
  • UI bug fixes forum post props Mamaduka.
  • Textdomain checks for twentyten and no domain.
  • Fix div not closing props Mamaduka.
20110201.1
  • i18n working
  • sr_RS de_DE ro_RO langs props Daniel Tara and Emil Uzelac.
  • Child theme support added, checks made against parent AND child at runtime.
  • Trac formatting button added for reviewers.
20101228.3