Как проверить шаблон wordpress на вирусы. Вредоносный код

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

  • Last revision for 3.1 (hopefully)
  • Chips suggestion of checking for inclusion of searchform.php (not
    perfect yet, need more examples to look for).
  • add_theme_page is required, all others flagged and displayed with line
    numbers.
  • Mostly internationalized, needs translations now.
  • Bug fixes.

20101228.2

  • Added menu checking.
  • ThemeURI AuthourURI added to results.
  • Lots of small fixes.
  • Started translation.

20101228.1

  • Fix embed_defaults filter check and stylesheet file data check.

20101226.1

  • Whole system redesign to allow easier synching with WordPress.org uploader. Many other additions/subtractions/changes as well.
  • WordPress 3.1 guidelines added, to help theme authors ensure compatibility for upcoming release.

20101110.7

  • Re-added malware.php checks for fopen and file_get_contents (INFO)
  • fixed a couple of undefined index errors.

20101110.4_r2

  • Fixed Warning: Wrong parameter count for stristr()

20101110.4_r1

  • Added echo to suggested.php

20101110.4

  • Fixed deprecated function call to get_plugins()

20101110.3

  • Fixed undefined index.

20101110.2

  • Missing < in main.php
  • Added conditional checks for licence.txt OR Licence tags in style.css
  • UI improvements.

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

Но даже, если шаблон чист в плане безопасности, а его дизайн, юзабилити и функционал вас полностью устраивают – это не значит, что все в порядке. Тема должна иметь валидный HTML и CSS код, а также соответствовать всем стандартам CMS WordPress. С последним есть проблемы даже у платных тем и шаблонов, сделанных на заказ.

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

Сегодня я покажу 2 способа проверки тем WordPress на соответствие стандартам. Эти инструменты используются при их добавлении в официальный каталог https://wordpress.org/themes/

Сервис проверки тем WordPress и шаблонов Joomla на соответствие стандартам

ThemeCheck.org – это бесплатный сервис, который позволяет проверить безопасность и качество шаблонов для CMS WordPress и Joomla перед установкой на сайт.

Для проверки темы, загрузите ее архив с вашего компьютера, нажав кнопку “Select file ” на сайте themecheck.org . Если не хотите, чтобы результаты проверки сохранялись на сервисе и были доступны другим пользователям, установите галочку “Forget uploaded data after results “. Теперь жмите кнопку “Submit “.

Для примера я взял тему Interface , которую скачал на официальном сайте. 99 из 100 – 0 критических ошибок и 1 предупреждение. Это очень хороший результат.

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

Признаться, я там мало что понял, это скорее будет полезно для авторов, а мне проще сменить шаблон, чем все исправлять. Не знаю только, когда я решусь на это.

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

Если вы разработчик и ваша тема валидна на 100%, можете сообщить об этом пользователям, установив на ней специальный значок с оценкой.

Ценность сервиса ThemeCheck.org в том, что любой вебмастер может с его помощью выбрать качественную тему еще до ее установки на блог.

Плагин Theme Check

Проверить уже установленный шаблон на совместимость с последними стандартами Вордпресс, можно с помощью плагина Theme Check . Ссылка на скачивание последней версии: https://wordpress.org/plugins/theme-check/

Функционал плагина аналогичен сервису, о котором я рассказал выше. Никаких настроек после стандартной установки и активации производить не надо. Порядок проверки:

  1. Перейдите в админке на страницу меню “Внешний вид ” – “Theme Check “.
  2. Выберите из выпадающего списка нужную тему, если их установлено несколько.
  3. Установите галочку “Suppress INFO “, если не хотите отправлять информацию.
  4. Нажмите кнопку “Check it “.

Результаты будут показаны на этой же странице.

Как видите, стандартная тема Twenty Ten тоже не идеальна, а вот, например, Twenty Fourteen ошибок не имеет.

После проверки плагин можно отключить, а лучше вообще удалить до следующего раза.

Вывод. Перед установкой нового шаблона WordPress проверяйте его не только на наличие скрытых ссылок и вредоносного кода плагином TAC, но и с помощью сервиса ThemeCheck.org или плагина Theme Check на соответствие последним стандартам CMS.

P.S. Недавно просматривая TopSape Reader, увидел новый SEO-блог zenpr.ru , который держит 1 место среди блоггеров по переходам за месяц. Если учесть, что его возраст чуть более месяца, то результат достоин уважения. Дизайн в стиле минимализма, если не сказать, что его вообще нет, но пишет автор – зачитаешься. Все по делу и без воды. Точно как в заголовке блога – «ноль лишних символов». Рекомендую почитать, найдете много полезной информации.

Вредоносный код попадает на сайт по неосторожности или злому умыслу. Назначения вредоносного кода различны, но, по сути, он наносит вред или мешает нормальной работы сайта. Чтобы убрать вредоносный код на 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. После установки плагинов и тем с «незаконных» ресурсов, проверьте сайт антивирусами.
  • Обязательно делайте периодические бэкапы и выполняйте другие .
  • А на гуглофейкер даже не тратьте время.

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

    я буквально на днях чинил кривую тему клиента именно по этому поводу. там в сайдбаре выводились миниатюрки 110×82 — но картинки туда запихивались оригинальные, полноразмерные.

    плюс ко всему — какой еще инструмент покажет вам, что ваши картинки сильно не оптимизированные? когда png файл можно без потери качества ужать с 500kb до 45kb — это весьма важная информация.

    ну вот зачем вы опять ерунду советуете?

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



    https://i.imgur.com/tOZcemv.jpg
    https://i.imgur.com/fEarWYT.jpg
    и тд.. Надеюсь, достаточно.

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

    Все выше указанные дают информации на 3 порядка выше и полезней чем этот гуглофейк. Реально нужной и полезной инфы.

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

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

    Проверьте свой, где картинки неправильно вставленные. Какие проблемы-то?
    Мне с трудом удалось отыскать что-то подобное, чтобы скрины снять.

    так как только его оценка и важна.

    Кому важна? Только не говорите что гуглу 🙂

    А да, оценка. получить 100/100 — нет никаких проблем. Но вот для сайта это катастрофа.

    А да, оценка. получить 100/100 - нет никаких проблем. Но вот для сайта это катастрофа.

    ну подсунули вы гуглу 503 ошибку, в чем смысл то?
    это же не решение проблемы.

    и да — оценка гуглу важна.
    не знаю насколько, они такие цифры не раскрывают — но было бы глупо делать сервис, от которого ничего не зависит, не так ли?

    PS да и даже, если гуглу плевать на свою собственную оценку — это же в первую очередь надо для самого вебмастера, а не для гугла. если у вебмастера не включен gzip, браузерное кэширование и картинки не в своем размере — это надо исправлять.

    и незачем исправлять то, что гугл не считает важным (это я про оценки других сервисов) — просто пустая трата времени будет.

    и да - оценка гуглу важна.

    Научитесь всё же анализировать выдачу.

    но было бы глупо делать сервис, от которого ничего не зависит, не так ли?

    Я Вам открою страшную тайну — гуглосервисы (и не только гугло) давно делаются не для людей. Сколько сервисов того же гугла кануло в лету? Сколько реально полезного было, а потом исчезло? Давно прошли времена, когда гугл что-то делал для людей. Бигдата, да.

    это же в первую очередь надо для самого вебмастера,

    Для вебмастера есть дейсвительно полезные и нужные вещи. А на разный хлам нечего тратить время. (если Вы не заметили — они и гуглопопугаев тоже показывают)

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

    ок — я вам также отвечу — научитесь анализировать выдачу. при всех прочих равных (абсолютно одинаковые факторы ранжирования — от ссылок до ПФ) первым в выдаче будет сайт с наибольшей оценкой от гугла.

    не верите? ну ваше право.
    протестировать подобное все равно не получится — равных сайтов не существует.

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

    в чем смысл то?

    В «важности» гуглопопугаев.

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

    Если Вы что-то заявляет про ПС, именно выдача — это единственно верное доказательство.

    протестировать подобное все равно не получится - равных сайтов не существует.

    Причем тут разные? Вы даже у сайтов из выдачи не можете проверить гуглопопугаи? Там и 50 и даже 30 вполне себе в ТОП10 сидят.

    он всего лишь один из тысяч факторов ранжирования. поэтому я и говорил про «равные» (не разные) сайты — только в этом случае можно убедиться в том, что гуглопопугаи работают.

    у фейсбука может быть оценка «0» по гуглопопугаям — но он все равно будет ТОП1 по запросу «фейсбук». это как бы очевидно.

    Google PageSpeed Insights имеет только один плюс — отдельный анализ выдачи для декстопа и мобильных, в остальном он плох тем же, чем и вечно недовольная сварливая жена 😀 Занижает оценку, придирается к тому, что невозможно исправить (ресурсы с других доменов, включая те же гуглы)
    Аналогов ему полно, проблемы сайта-конфигурации анализируют очень многие сервисы,
    я специально не дала ссылку в начале темы на Pingdom например, мне больше нравится Webpagetest, разница только в виде, как подается результат, и субъективном удобстве.
    Плохо пожатые картинки тоже многие находят, вопрос только в том, скинуть 10 попугаев и выдать что — картинки у вас на сайте совсем не оптимизированы из за 1 байта разницы…
    Взять тот же GTMetrix , там есть оценка по PageSpeed алгоритму и Yslow,
    причем сайт имеющий 95% PageSpeed может на Insights быть «дном» неоптимизированным, это действительно их проблема и они делают этим проблемы другим, особенно тем, кто не может анализировать смысл оценок и результаты.
    Сайт хороший, оптимизированый, а на G PS I — «ой все плохо»

    а вы правда считаете, что эти самые «гуглопопугаи» это самый важный на свете фактор ранжирования?

    Я считаю, что это попугаи. Никаких полезных данных они не дают. А к скорости загрузки вообще никаким боком (какой-такой pagespeed? С самого названия сервиса — фейк). Скорость измеряется не в гуглопопугаях, а в бит/сек.
    Что же до ранжирования — если сайты в ТОП10 имеет 30гуглопопугаев, то какой от них смысл вообще?
    Вот как-то так.

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

    Работают НЕ попугаи, а все факторы. 90% из которых в этом гулофейке нет, а 90% из того что есть — бред сивой кобылы.
    Единственная польза от него для ламерв — можно скачать оптимизированную графику. Но только графику, а не стили и скрипты.

  • Тема «Проверка сайта на ошибки» закрыта для новых ответов.