Регулярні вирази

Чому ця стаття у розділі віруси? Тому, що саме регулярні вирази допомогли почистити файли від хламу (результату роботи віруса). Саме від хламу, тому що iframe в який загружається Бог зна що я інакше назвати не можу. Приблизно тиждень тег IFrame із значеннями ширина = “0″ і висота = “0″ тормозив мій сайт. Наслідки тільки негативні, якщо не рахувати практику з регулярними виразами :) . Багато незадоволених користувачів сайту, та ще й pr впав до 0 на шкалі Google Toolbar. Теоретично показник мав би повернутись на попередню позначку, принаймі його можна заставити повернутись, а от відвідувачів повернути важко. Тому будьмо уважні.

Нижче наведеним регулярним виразом я вбивав от таку конструкцію:

<iframe src=’http://url/’ width=’1′ height=’1′ style=’visibility: hidden;’></iframe><script id=’1234′>ла-ла-ла</script><script>фа-фа-фа</script>

Регулярний вираз не ідеальний, але мені не нашкодив. Використовуйте на свій страх і ризик.

<iframe[^>]*>(.*)</iframe><script[^>]*>(.*)</script>

Дальше засовуєм його в функцію ereg_replace(’<iframe[^>]*>(.*)</iframe><script[^>]*>(.*)</script>’,”,$text) і в результаті в нашому тексті замість хламу пустота :) .

В скрипті перебираю всі файли (по масці) в заданій категорії, включаючи підкатегорії (можна виключити деякі підкатегорії). Далі читаю інформацію з потрібних файлів (index.php, index.html, …) змінюєм використовуючи функцію ereg_replace і отриманий результат записуєм в файл з якого читали.

Кому потрібний скрипт качаєм тут.

Онлайн-перевірка сайта на віруси

Небагато сервісів, які дозволяють перевірити сайт на віруси. Результати їхніх перевірок теж не вражають. Хоча їхня робота шукати віруси, а не плоди їхньої роботи. Iframe в який загружається сайт з всякою хирньою найти не всім під силу. Саме тому пропоную перевіряти на декілької сайтах.

  • http://webscanner.ru
  • http://www.taghosting.ru/online_services/antivirus
  • http://online.us.drweb.com/?url=1

Крім цього для тих хто подорожує по Всесвітній павутині за допомогою браузерів Mozilla, Mozilla Firefox, Internet Explorer чи Opera, компанія “Доктор Веб” пропонує бесплатні плагіни до браузерів - Dr.Web LinkChecker, з допомогою яких Ви можете перевірити на вірус любу сторінку в інтернеті перед її відкриттям або любий файл перед збереженням.

Що саме використовувати це особиста справа кожного. А то що це необхідно робити - факт.

Віруси на сайті або тег IFRAME

Відвідувачі сайту повідомили про вірус на сайті. Я був занятий і не приділив цьому належної уваги. Зайшов на сайт, NOD32 не матюкається. Вирішив встановити AVAST, саме він бив на сполох у відвідувача. Теж нічого, тому забив.
Пару днів пройшло і прийшлось перестановити XP, поставив XP з SP3. Зайшов на сайт і прозрів. Поперше довго грузився, подруге поплив, по третє деякі сайти на цьому хостингу взагалі перестали працювати. Заглянув в код і побачив зайві  <iframe src = http://ссилка_на_сайт_що_містить_вірус>якась фігня</iframe><script>фігня</script><script>фігня</script>. Тег IFrame як правило зі значенням ширина = “0″ і висота = “0″, це означає, що Ви не побачите що відкривається вікно “лівого” сайту. Як цей код потрав майже на всі мої сайти.
В основному це робить Троянская програма, яка викрадає паролі доступу і часто не визначається антивірусними програмами. Рідше шкідливий код вставляється через вразливості в скриптах / CMS. Оскільки CMS-ки різні тому хак менш вірогідний. Думаю вкрали паролі до ftp з FileZilla.
Якщо з Вами трапилась така неприємність:

  1. Перевірити свій комп’ютер на віруси, Spyware, трояни та інше шкідливе програмне забезпечення. Обовязково антивирусом з останнім оновленнями баз, для вірності бажано використовувати антивірусне ПЗ кількох виробників.
  2. Змінити паролі до cPanel, ftp і не зберігати їх, а запам’ятати або записати на листочку :)
  3. Відновити сайт з резервної копії.

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

Мої сайти

Про все

Робота

PHP експерт - обов'язкове гіперпосилання при будь-якому використанні матеріалів сайту. Захотіли щось подібне? Пишіть info@phpexpert.org.ua