Усунення шкідливого коду в безкоштовних шаблонах wordpress

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

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

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

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

Усунення шкідливого коду в безкоштовних шаблонах wordpress

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

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

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

Усунення шкідливого коду в безкоштовних шаблонах wordpress

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

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

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

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

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

Усунення шкідливого коду в безкоштовних шаблонах wordpress

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

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

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

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

Раджу ще почитати по темі:

  • Усунення шкідливого коду в безкоштовних шаблонах wordpress
    Програма для створення ментальних карт iMindMap
  • Усунення шкідливого коду в безкоштовних шаблонах wordpress
    Плагін Theme Authenticity Checker (TAC)
  • Усунення шкідливого коду в безкоштовних шаблонах wordpress
    Налаштування шаблону WordPress (структура php)
  • Усунення шкідливого коду в безкоштовних шаблонах wordpress
    Як змінити шаблон WordPress (працюємо з CSS змінюємо дизайн)

Тиждень жахів Вордпресс триває) А що від шаблону не відмовився? Просто почистив і перефарбував? Люблю помаранчевий колір)

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

Ага, в будь-незрозумілій ситуації перефарбовуй шаблон 🙂 Синій, зелений і оранжевий мої улюблені кольори, синій вже був, зелений наступний претендент =)

Дивлюся дизайн трохи змінив - колір змінився і іконки в меню прикручені ...

А чого шаблон не зміна? Шкода витрачених зусиль?

Здається мені що ви зіткнулися саме з цієї самої бідою - тут йде підміна контенту з замаскованої під точку посиланням.

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

Ну да, щось в цьому роді і було.

Ось поясни мені, яким чином дизайн впливає на трафік?

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

Це-то зрозуміло, але якщо переходити на нормальний шаблон без подальших довгих налаштувань, яким чином це позначиться на трафіку?

Слухай ну коли міняєш шаблон то і код сторінок сайту змінюється кардинально. Не можна заздалегідь знати як до цього коду поставиться пошуковик, може йому не сподобається якась малопомітна фігня, на яку ти б ніколи і не подумав)
Може новий шрифт у нього викличе менше довіри, або скажімо структура верстки здасться кривої і через це він знизить сайт у видачі. Або самий банальний приклад - пошуковик просто скан по своїй базі і знаходить масу схожих дизайнів, який юзают такі ж щасливі власники преміум шаблонів з попередньо встановленими =) І у них у всіх практично ідентичний код і однаковий css файл оформлення, і це теж позначиться негативно запевняю.
А тут я вже переробив все що тільки можливо, від оригіналу не залишилося і сліду і знаю що такого шаблону і схожого коду ні у кого немає) Робити все по новій це занадто довго і клопітно.

Хм, ну цілком може бути ...