Підозра на вірус в WordPress 4.2 (як видалити емоджі)

Іноді я поглядаю статистику запитів і індексування в google webmasters tools, зайшов туди вчора і отримав грізне попередження про виявлення підозрілого ПО на моєму сайті:

Іноді я поглядаю статистику запитів і індексування в google webmasters tools, зайшов туди вчора і отримав грізне попередження про виявлення підозрілого ПО на моєму сайті:

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

Шукаємо віруси на сайті:

  1. Набираємо в Гуглі або вашому улюбленому пошуковику запит «перевірка сайту на віруси» і перевіряєте свій сайт на на віруси за допомогою перших 5-10 сервісів. Я для повноти картини перевірив сайт на всіх сервісах з першої десятки. І тільки один 2ip.ru - вказав на наявність підозрілого коду, інші 9 - нічого не знайшли і написали що сайт повністю чистий. Якщо ваш сайт буде заражений відомим вірусом то онлайн-антивіруси для перевірки сайтів покажуть його назву і вкажуть на проблеми код який треба видалити.
  2. Так як перший пункт нічого не показав, довелося шукати підозрілий код самостійно, для цього відкриваємо сторінку в будь-якому браузері і шукаємо опцію «переглянути вихідний код сторінки», в коді шукаємо шматки javascript, посилання і інші підозрілі речі яких там бути не повинно. Підозрілий шматок я знайшов практично відразу, це виявився код javascript який реалізує підтримку емоджі, який з'явився в новій версії WordPress 4.2 після чергового оновлення движка.
  3. Видаляємо підозрілий код або код вірусу, так як під підозру потрапив стандартний код WordPress то для його видалення потрібно відключити емоджі, зробити це можна двома способами.

Підозрілий код виглядає так:

<Script type = "text / javascript">
window._wpemojiSettings = { «baseUrl»: »https: \ / \ / sworg \ / images \ / core \ / emoji \ / 72 × 72 \ /», »ext»: ». png», »source»: { « concatemoji »:» https: \ / \ / alpograd.ru \ / wp-includes \ / js \ /wp-emoji-release.min.js? ver = 4.2.1 "}};
! Function (a, b, c) {function d (a) {var c = b.createElement ( «canvas»), d = c.getContext && c.getContext ( «2d»); return d && d.fillText? (D.textBaseline = »top», d.font = "600 32px Arial», »flag» === a? (d.fillText (String.fromCharCode (55356,56812,55356,56807), 0,0), c.toDataURL ( ) .length> 3e3) :( d.fillText (String.fromCharCode (55357,56835), 0,0), 0! == d.getImageData (16,16,1,1) .data [0])): ! 1} function e (a) {var c = b.createElement ( «script»); c.src = a, c.type = "text / javascript», b.getElementsByTagName ( «head») [0] .appendChild (c)} var f; c.supports = {simple: d ( «simple»), flag: d ( «flag»)}, c.supports.simple && c.supports.flag || (f = c.source || {}, f.concatemoji? e (f.concatemoji): f.wpemoji && f.twemoji && (e (f.twemoji), e (f.wpemoji)))} (window, document, window._wpemojiSettings);
</ Script>

Перший спосіб видалення емоджі на WordPress 4.2 за допомогою плагіна.

Знаходимо і ставимо плагін під назвою «Disable Emojis», цей спосіб самий простий і швидкий, але мені він чомусь не допоміг, код продовжив з'являтися в заголовку сторінок, в чому проблема я розбиратися не став і використовував другий спосіб.

Другий спосіб видалення емоджі на WordPress 4.2

Необхідно відредагувати файл functions.php вашої теми, зазвичай це можна зробити з адмінки WordPress, якщо не виходить то доведеться використовувати FTP-клієнт. У нього в будь-яке місце (я для вірності додав в початок файлу) треба додати рядки:

remove_action ( 'wp_head', 'print_emoji_detection_script', 7);
remove_action ( 'admin_print_scripts', 'print_emoji_detection_script');
remove_action ( 'wp_print_styles', 'print_emoji_styles');
remove_action ( 'admin_print_styles', 'print_emoji_styles');

Що б вийшло ось так (потрібне виділено червоним):

Що б вийшло ось так (потрібне виділено червоним):

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

Якщо ви використовуєте плагіни кешування - для усунення проблем скиньте кеш перед перевіркою вихідного коду сторінки.

Після видалення емоджі, я написав Гуглу що код вилучений і запросив повторну перевірку сайту на шкідливий код, менш ніж через добу в Веб-майстер тулс прийшло повідомлення що шкідливий код на моєму сайті не найден:

Після видалення емоджі, я написав Гуглу що код вилучений і запросив повторну перевірку сайту на шкідливий код, менш ніж через добу в Веб-майстер тулс прийшло повідомлення що шкідливий код на моєму сайті не найден:

Js?
FillText?
Font = "600 32px Arial», »flag» === a?
Concatemoji?