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

Иногда я посматриваю статистику запросов и индексирования в 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:\/\/s.w.org\/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 больше не должен подгружаться.

Если вы используете плагины кеширования — для устранения проблем сбросьте кеш перед проверкой исходного кода страницы.

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

Как удалить вирусы с сайта

5 комментариев к “Подозрение на вирус в WordPress 4.2 (как удалить эмоджи)”

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

    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’ );
    remove_filter( ‘the_content_feed’, ‘wp_staticize_emoji’ );
    remove_filter( ‘comment_text_rss’, ‘wp_staticize_emoji’ );
    remove_filter( ‘wp_mail’, ‘wp_staticize_emoji_for_email’ );

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

    1. Пожалуйста, а у Вас сработал плагин или пришлось руками править код? У меня с плагином ничего не получилось, пришлось править тему, причем пробовал на нескольких сайтах с Вордпрессом.

      1. Мне помогли 4 строчки в functions.php на двух сайтах. А вообще я заянлся «уборкой» кода в хедере, по возможности убрал яву в футер и оптимизировал код. Теперь страницы грузятся быстрее

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.