Проверка темы. Вредоносный код Специализированные автивирусы для Вордпресс

Будучи одной из наиболее часто используемых платформ в публикации онлайн-контента, WordPress часто подвергается инфицированию malware , "троянскими" вирусами, вредоносным кодом и другими опасными штуками. Есть несколько практических руководств, которые касаются wordpress-безопасности и вопросов очистки вашего сайта от malware (вредоносный код). Эта тема настолько важна и актуальна для владельцев сайтов, что нет ничего плохого в том, чтобы вернуться к ее обсуждению снова и снова.

Новички, которые только начали использовать автономную CMS на собственном веб-сервере, впадают в панику, столкнувшись впервые с заражением своего сайта вредоносным ПО. В попытках восстановить свой сайт они допускают дополнительные ошибки, что часто ведет к полной потере файлов и важных данных. В этой статье мы научимся находить, определять и корректно удалять malware так, чтобы не навредить вашим данным и основным файлам на сайте.

Делайте бэкапы вашего сайта

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

Регулярное сохранения резервных копий вашего сайта должно включать не только БД сайта, но и все основные файлы. Этот процесс и пары минут не займет, зато сохранит вам кучу времени и нервов в будущем и предостережет от целого ряда серьезных проблем. Я настоятельно рекомендую Backup Buddy , Cloudsafe365 и VaultPress в качестве премиум-решений для проведения регулярных процедур создания резервных копий и восстановления данных из них при необходимости. Также есть бесплатные плагины для этой цели, такие как WP-DBManager и руководство по созданию бэкапов вручную .

Восстанавливать сайт или искать на нем malware?

Если вы используете сервис для бэкапов наподобие Backup Buddy или VaultPress , тогда у вас есть опция восстановления сайта к более ранней версии. Тем не менее, я полагаю, что это - не самая лучшая идея. Восстановление вашего сайта без изучения причин сбоя и устранения malware может привести к тому, что уязвимости на вашем сайте все равно останутся. Поэтому куда лучшим будет найти уязвимость , устранить ее , а затем восстановить состояние сайта.

Определяем наличие вредоносного ПО на сайте

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

Проверяем обрабатываемый HTML-код

Начать поиск malware мы можем с поиска того, где и как срабатывает вредоносный код на вашем сайте.

  • Присутствует ли такой код на всех страницах?
  • Появляется ли он только на конкретных страницах или в конкретных постах?
  • Где именно появился вредоносный код? Он вставлен в подвал, в шапку сайта, в основной контент или в боковые панели сайта?

Ответы на эти вопросы помогут вам определить, какие именно файлы на сайте следует проверить в первую очередь.

Проверяем ваши плагины и темы на наличие вредоносного кода

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

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

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

Самые лучшие практические способы защиты ваших тем и плагинов:

  • Удаляйте ненужные темы и плагины с вашего веб-сервера.
  • Убедитесь, что ваши темы и плагины всегда взяты из надежных источников.
  • Регулярно обновляйте темы и плагины на сайте.
  • Не используйте премиму-плагины и платные темы, загруженные с торрентов или с неофициальных сайтов.

Находим вредоносный код, вставленный в файлы ядра WordPress

Если вы уже проверили и темы, и плагины, и при этом вредоносный код никуда не пропал, то следующим шагом в ваших поисках станет проверка файлов ядра WordPress. Здесь я снова рекомендую применить тот же подход, что и в случае с плагинами и темами.

Для начала делаем резервную копию всех файлов вашего сайта (важно, чтобы в бэкап попали такие файлы, как wp-config , wp-content папка, .htaccess и robots.txt ). После завершения процедуры резервного копирования начинайте удалять все файлы с вашего веб-сервера. Теперь скачайте свежую копию WordPress и установите его на сервер. Заполните wp-config информацией из вашей БД. Зайдите теперь на сайт и посмотрите, остался ли на нем вредоносный код. Если malware пропал, тогда значит, ваши файлы ядра были заражены. Теперь аккуратно восстановите изображения, видео и аудио-файлы из резервной копии вашего сайта.

Самые лучшие практические способы защитить код файлов в WordPress

  • Убедитесь, что на сайте все разрешения на операции с файлами имеют значение 644.
  • Не модифицируйте и не заменяйте файлы ядра в WordPress.
  • Используйте надежные пароли в Shell, FTP, БД и панели администратора WordPress.

Находим инъекцию вредоносного SQL-кода в WordPress

Выше мы уже обследовали плагины, темы и ядро WordPress. Если все это не помогло побороть вредоносный код, пришло время браться за базу данных . Для начала убедитесь, что сделали резервную копию вашей БД сайта. Если делать бэкапы регулярно, то всегда можно легко восстановить предыдущую версию БД. Но перед этим убедитесь, что в БД закрался вредоносный код.

Скачайте и установите плагин WordPress Exploit Scanner . Активируйте его и просканируйте свой веб-сайт. Exploit Scanner проверит вашу БД, файлы ядра, плагины, темы на предмет подозрительного кода в них и выдаст вам результат сканирования. Как только сканирование завершится, вы просмотрите результаты: если в них обнаружится множество уведомлений об ошибках и ложных предупреждениях, вам придется выбирать результаты крайне внимательно. Этот плагин ничего не удаляет из ваших файлов и БД. Как только вы выясните, где именно "завелся" вредоносный код, эти файлы вам придется самостоятельно удалить вручную.

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

Скопируйте код, который кажется подозрительным и был определен плагином-сканнером, а затем запустите mysql-запрос такого вида, используя phpMyAdmin :

SELECT * From wp_comments where comment_content Like "%SuspiciousCodeHere%"

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

Проделали все вышеперечисленное, но все равно не избавились от проблем?

Полагаю, большинство людей в состоянии самостоятельно и сравнительно просто определить, найти и устранить вредоносный код на своих WordPress-сайтах. Но иногда malware хорошо маскируется и не поддается простому удалению. Если вы перепробовали все вышеупомянутые методы и при этом ничего не выяснили и не удалили, тогда настала пора приглашать экспертов по безопасности в WordPress, пользоваться онлайн-сервисами или услугами консультантов, которые очистят ваш сайт от зловредов за небольшую плату.

Сервисы мониторинга и очистки сайта от Sucuri

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

Ищем индивидуального эксперта по безопасности в WordPress

Есть много веб-сайтов для фрилансеров, где вы можете разместить предложение о работе для консультанта по безопасности, который устранит вашу проблему с заражением сайта. Из всех поступивших предложений выберите того, кто кажется вам наиболее опытным и знающим. Вы также можете разместить заявку на выполнение работ по очистке сайта от вредоносного ПО на WordPress Jobs либо в Smashing Magazine’s Jobs Board . Просто убедитесь в том, что человек, которого вы нанимаете для выполнения этих задач, опытен, обладает хорошей репутацией и положительными отзывами о предыдущей работе.

Заключение

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

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

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

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

Существуют тысячи бесплатных тем для WordPress и различных плагинах и уже здесь может крыться угроза. Одно дело, когда вы скачиваете шаблон с сайта WordPress и совсем другое, когда находите на левом сайте. Недобросовестные разработчики могут встраивать различный вредоносный код в свои продукты. Еще больше риск, если вы скачиваете бесплатно премиум шаблоны, там взломщики уже ничем не рискуя могут добавить какую-нибудь дыру в безопасности, через которую потом смогут проникнуть и сделать то, что им нужно. Вот поэтому так важна проверка wordpress сайта на вирусы.

Проверка wordpress сайта на вирусы

Первое к чему нужно обратиться при проверке сайта не вирусы, это плагины WordPress. Быстро и просто вы можете сканировать свой сайт и найти подозрительные участки кода, на которые стоит обратить внимание, будь они в теме, плагине и самом ядре Wodpress. Рассмотрим несколько самых популярных плагинов:

1. TOC

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

Откройте "Внешний вид" -> "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" *

Проверяет отображается ли страница "постоянной страницы". Можно указать ID, ярлык или заголовок страницы для проверки. Условный тег.

Вернет true при передаче пустых значений

Будьте внимательны, потому что следующие вызовы этой функции вернут true:

Is_page("") is_page(0) is_page("0") is_page(null) is_page(false) is_page(array())

Нельзя использовать внутри Цикла WordPress

Из-за того что в при работе цикла переписываются некоторые глобальные переменные, is_page() не получится использовать внутри цикла. Впрочем, в этом нет необходимости. Чтобы использовать этот Тег шаблона после цикла, произвольный цикл (запрос на получение записей) надо сбросить функцией: wp_reset_query()

✈ 1 раз = 0.000012с = очень быстро | 50000 раз = 0.02с = скорость света | PHP 7.0.8, WP 4.6.1

Хуков нет.

Возвращает

true/false. true, если отображается тип страницы: постоянной страницы и false, если отображается любой другой тип страницы.

Использование

if(is_page($page)){ //код } $page(строка/число/объект)

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

По умолчанию: нет

Примеры

#1 Функция в действии

Различные примеры использования - случаи когда функция возвращает true (срабатывает):

Is_page(); // Когда отображается любая постоянная страница. is_page(42); // когда отображается страница с ID 42. is_page("О сайте"); // Когда отображается страница с заголовком "О сайте". is_page("o-saite"); // Когда отображается страница со слагом "o-saite". is_page(array(42, "o-saite", "О сайте")); // Параметры можно комбинировать. Добавлено в версии 2.5. is_page(array("sample-page", "contacts", 23, 34)); // Можно проверять несколько страниц одновременно. Все указанные страницы разные...

#2 Заметка про кириллицу и ярлык (слаг)

Если у вас на сайте кириллица не меняется на латиницу - нет плагина Cyr-To-Lat или ему подобного, то при создании записи её ярлык изменяется и кириллица превращается в спец символы (контакты - %d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d1%8b), поэтому при проверке нужно это учитывать. Т.е. если проверяется не заголовок, а ярлык (post_name), то делайте так:

Is_page("о-сайте"); // неправильно is_page(sanitize_title("о-сайте")); // правильно

#3 Проверка находимся ли мы на дочерней странице у постоянной страницы

В WordPress нет функции is_subpage() . Но такую проверку можно сделать таким кодом:

Global $post; // Если за пределами цикла if (is_page() && $post->post_parent) { // Это дочерняя страница } else { // Это не дочерняя страница }

Можно создать свою функцию is_subpage() . Добавьте такой код в файл темы functions.php . Она работает как же как первый пример: проверят является ли текущая страница дочерней, т.е. страница ли это вообще и есть ли у нее родительская страница.

Такую функцию полезно создавать, когда на сайте предполагается делать проверки как в примере 1 много раз.

/* * Проверят является ли текущая постоянная страница дочерней страницей * Возвращает true или false */ function is_subpage() { global $post; if (is_page() && $post->post_parent) { return $post->post_parent; } return false; }

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

If (is_page("about") || "2" == $post->post_parent) { // Это страница "О сайте" или её дочерняя страница $bannerimg = "about.jpg"; } elseif (is_page("learning") || "56" == $post->post_parent) { $bannerimg = "teaching.jpg"; } elseif (is_page("admissions") || "15" == $post->post_parent) { $bannerimg = "admissions.jpg"; } else { $bannerimg = "home.jpg"; // если мы на неопределенной странице, выведем картинку по умолчанию }

Создадим функцию, которая проверит все уровни вложенности, всю ветку подстраниц и если мы на одной из страниц ветки, то функция вернет true, в противном случае false. Т.е. предположим у нас есть страница "О нас" у нее есть дочерняя страница "Наши услуги", а у этой страницы есть еще дочерние страницы "Покраска" и "Отделка". В эту функцию передадим ID страницы "О нас" и она будет возвращать true если мы находимся на любой из указанных страниц:

/* * Проверка дочерних страниц по всем уровням вложенности * $pid = ID страницы все уровни дочерних страниц которой нужно проверить */ function is_tree($pid){ global $post; // если мы уже на указанной странице выходим if (is_page($pid)) return true; $anc = get_post_ancestors($post->ID); foreach ($anc as $ancestor) { if(is_page() && $ancestor == $pid) { return true; } } return false; }

#4 Проверка разделения страницы

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

$paged = $wp_query->get("paged"); if (! $paged || $paged < 2){ // Пост не разделен на страницы или это не первая страница. } else { // Это 2,3,4 ... страница разделенного поста. }

$paged = get_query_var("paged") ? get_query_var("paged") : false; if ($paged === false){ // Пост не разделен на страницы или это не первая страница. } else { // Это 2,3,4 ... страница разделенного поста. }

If (0 === get_query_var("page")) { // Пост не разделен на страницы или это не первая страница. } else { // Это 2,3,4 ... страница разделенного поста. }

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

Что такое вредоносный код на сайте WordPress

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

Как попадают вредоносные коды на сайт

Лазейки для попадания кодов на сайт, также множество.

  1. Чаще всего, это темы и плагины скачанные с «левых» ресурсов. Хотя, такое проникновение характерно для, так называемых, зашифрованных ссылок. Явный код так не попадает на сайт.
  2. Проникновение вируса при взломе сайта, самое опасное. Как правило, взлом сайта позволяет разместить не только «одноразовый код», но установить код с элементами malware (вредоносной программы). Например, вы находите код, и удаляет его, а он восстанавливается, через некоторое время. Вариантов, опять — таки множество.

Сразу замечу, борьба с такими вирусами трудная, а ручное удаление требует знаний. Есть три решения проблемы: первое решение – использовать плагины анитвирисники, например, плагин под названием BulletProof Security .

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

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

Как искать вредоносный код на WordPress

Важно понимать, что вредоносный код на WordPress может быть в любом файле сайта, и не обязательно в рабочей теме. Он может занестись с плагином, с темой, с «самодельным» кодом взятого из Интернет. Попробовать найти вредоносный код можно несколькими способами.

Способ 1. Вручную. Листаете все файлы сайта и сравниваете их с файлами незараженного бэкапа. Находите чужой код – удаляете.

Способ 2. С помощью плагинов безопасности WordPress. Например, . У этого плагина есть замечательная функция, сканирование файлов сайта на наличие чужого кода и плагин прекрасно справляется с этой задачей.

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

Способ 4. Если вы можете работать с SSH доступом к каталогу сайта, то вперед, там своя кухня.

Важно! Каким бы способом вы не искали вредоносный код, перед поиском и последующим удалением кода, закройте доступ к файлам сайта (включите режим обслуживания). Помните про коды, которые сами восстанавливаются при их удалении.

Поиск вредоносных кодов по функции eval

Есть в php такая функция eval . Она позволяет исполнять любой код в ее строке. Причем код может быть закодирован. Именно из-за кодировки вредоносный код выглядит, как набор букв и символов. Популярны две кодировки:

  1. Base64;
  2. Rot13.

Соответственно в этих кодировках функция eval выглядит так:

  • eval (base64_decode (...))
  • eval (str_rot13 (...)) //во внутренних кавычках, длинные не понятные наборы букв и символов..

Алгоритм поиска вредоносного кода по функции eval следующий (работаем из административной панели):

  • идёте в редактор сайта (Внешний вид→Редактор).
  • копируете файл functions.php .
  • открываете его в текстовом редакторе (например, Notepad++) и по поиску ищите слово: eval .
  • если нашли, не спешите ничего удалять. Нужно понять, что эта функция «просит» исполнить. Чтобы это понять код нужно раскодировать. Для раскодирования есть онлайн инструменты, называемые декодеры.

Декодеры/Кодеры

Работают декодеры просто. Копируете код, который нужно расшифровать, вставляете в поле декодера и декодируете.

На момент написания статьи я не нашел у себя ни одного зашифрованного кода найденного в WordPress. Нашел код с сайта Joomla. В принципе разницы для понимания раскодирования нет. Смотрим фото.

Как видите на фото, функция eval после раскодирования, вывела не страшный код, угрожающий безопасности сайта, а зашифрованную ссылку копирайта , автора шаблона. Его тоже можно удалить, но он вернется после обновления шаблона, если вы не используете .

В завершении замечу, чтобы не получить вирус на сайт:

  • Вредоносный код на WordPress чаще приходит с темами и плагинами. Поэтому не ставьте шаблоны и плагины из «левых», не проверенных ресурсов, а если ставите, внимательно их прокачайте, на наличие ссылок и исполнительных функций php. После установки плагинов и тем с «незаконных» ресурсов, проверьте сайт антивирусами.
  • Обязательно делайте периодические бэкапы и выполняйте другие .

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

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

В этом уроке мы покажем, какие инструменты и трюки можно применить, чтобы узнать, какую тему оформления использует этот сайт на 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 на свои, в таком случае определить оригинал темы будет очень сложно.