Онлайн-перевірка сайту на віруси та вразливості безкоштовно
Перевірка сайту на віруси та вразливості онлайн: як зрозуміти, що з сайтом щось не так
Сайт може бути заражений тижнями, а власник дізнається про це лише тоді, коли клієнти скаржаться на дивні редиректи або браузер показує червоне попередження. Саме тому регулярна перевірка посилання на віруси варта того, щоб стати звичкою, а не реакцією на аварію. Зовнішній сканер безпеки, який працює від імені PromoPilot, дозволяє за кілька секунд побачити те, що бачить відвідувач, пошуковий робот і антивірусна репутаційна база, і зрозуміти, де проблема та наскільки вона серйозна.

Важливо одразу розвести три поняття, які часто плутають. Зараження означає, що на сайті вже працює чужий код, який шкодить відвідувачам або крадіє дані. Вразливість — це прогалина, через яку зловмисник може зараження спричинити, але поки що її не використовує. Помилка конфігурації — це неправильно виставлений параметр, наприклад відсутній заголовок безпеки чи cookie без прапорця Secure. Перші два пункти вимагають негайної реакції, третій зазвичай виправляється планово. Зовнішня перевірка допомагає відрізнити одне від іншого, бо кожна категорія має окремий розділ звіту з власним рівнем ризику.
Варто подумати і про те, хто має ініціювати перевірку. Власник малого бізнесу, який продає через сайт, помітить проблему першим, якщо в нього є звичка дивитися звіт. Маркетолог помітить падіння позицій у пошуку і часто першим побачить позначку про підозрілий вміст у Search Console. Технічний фахівець буде шукати причину в логах. Усі вони отримують вигоду від одного й того самого: короткого списку знахідок, відсортованого за критичністю.
Ознаки компрометації, які легко пропустити
Найпідступніше в зараженні те, що воно рідко проявляється на першій сторінці очевидним чином. Скрипт-редирект, який спрацьовує лише для мобільних користувачів або для відвідувачів, що прийшли з пошуку, може місяцями лишатися непоміченим власником, який відкриває сайт з комп’ютера і бачить звичну картинку. Тому симптоми варто шукати не на головній, а в місцях, які легко ігнорувати.
Типові сигнали, на які варто звернути увагу:
- у видачі за запитом site: з’являються сторінки, які ви ніколи не створювали, часто з темами казино, аптек або сторонніх послуг;
- у каталогах на кшталт /wp-content/ або у теках завантажень з’являються PHP-файли, яких там бути не повинно;
- robots.txt або файл sitemap.xml змінилися без участі розробників, а в sitemap з’явилися адреси, яких немає в структурі сайту;
- браузер показує попередження про шкідливий вміст, хоча ваші власні перевірки проходять без проблем;
- листи з вашого домену потрапляють у спам, і це відбувається без змін у поштових налаштуваннях.
Окремо варто згадати прихований JavaScript у головному шаблоні. Він може бути вставлений у файл теми, у підключений через функцію фрагмент або навіть у базу даних, звідки виводиться на кожну сторінку. Звичайний перегляд коду через браузер його показує, але далеко не кожен власник шукає такі рядки. Саме тому автоматичне сканування корисне: воно аналізує саму відповідь сервера, а не те, що ми очікуємо побачити.
Ще одна поширена помилка — думати, що зараження обов’язково означає видимі зміни. Насправді багато сучасних скімерів чекають на сторінку оплати або форму з полем картки і нічого не змінюють на головній. Сканер, який перевіряє лише очевидне, пропустить таку загрозу. Тому у звіті важливо дивитися не лише на загальну оцінку, а й на розділ із знахідками щодо коду.
Що саме перевіряє зовнішня перевірка сайту
Зовнішній аналіз починається з головної сторінки. Сканер завантажує її так само, як звичайний браузер, і шукає в коді вставки script, iframe, блоки з display:none та обфускований код, який важко прочитати людині. Окремо перевіряються зовнішні ресурси, на які посилається сторінка: якщо скрипт підтягується з домену, що не має жодного відношення до вашого бізнесу, це привід для уваги.
Далі домен звіряється з чорними списками. Найбільш відомі з них — бази шкідливих адрес і репутаційні сервіси, які збирають інформацію про загрози від антивірусних компаній і спільнот. Домен може потрапити до такого списку навіть без видимих змін на сайті, наприклад коли хтось із сусідів по хостингу розсилає спам з того самого IP-адреси. Тому позитивний результат перевірки варто сприймати як сигнал до дії, а не як вирок.
Окрема група перевірок стосується шифрування. Тут оцінюються термін дії SSL-сертифіката, ланцюжок довіри, підтримка застарілих версій TLS 1.0 і 1.1, а також наявність змішаного контенту, коли на захищеній сторінці завантажуються ресурси через незахищений HTTP. Змішаний контент — це одна з найчастіших причин попереджень у браузері, і його часто не помічають, бо сторінка відкривається.
Зелена замочок у адресному рядку ще не означає, що сайт безпечний: він лише підтверджує, що канал між браузером і сервером зашифрований. Що саме передається цим каналом і чи не підмінено сторінку на шляху, визначає вже інший набір перевірок.
Заголовки безпеки — ще один великий розділ. Content-Security-Policy обмежує джерела скриптів і стилів, Strict-Transport-Security змушує браузер ходити лише по HTTPS, X-Frame-Options захищає від вбудовування сторінки в чужий фрейм, X-Content-Type-Options не дозволяє браузеру вгадувати тип файлу, а Referrer-Policy керує тим, які дані про походження переходу передаються далі. Відсутність цих заголовків не означає, що сайт уже зламано, але значно знижує стійкість до атак, які на них спираються.
Аналіз cookies перевіряє три прапорці. Secure гарантує, що cookie передається лише по HTTPS. HttpOnly не дозволяє JavaScript читати його, що знижує ризик крадіжки сесії через стороннього скрипта. SameSite обмежує надсилання cookie у сторонніх запитах і є одним із найпростіших способів зменшити ризик міжсайтових атак. Сайт, де сесійні cookie не мають жодного з цих атрибутів, відкриває зловмисникам значно більше можливостей, ніж сайт із правильною конфігурацією.

Нарешті, версії CMS і компонентів. Сканер визначає WordPress, Joomla, Drupal та плагіни за сигнатурами в коді сторінки: шляхами до файлів, мета-тегами, коментарями. Знайдена версія звіряється з базою відомих вразливостей CVE. Важливо розуміти, що визначення версії за ознаками в HTML є орієнтовним: її можна приховати, а деякі плагіни не виводять жодних сигнатур. Тому відсутність знахідки не гарантує, що компонент оновлений.
Як вибрати сервіс перевірки: критерії, які справді мають значення
Перший критерій — глибина сканування. Одні сервіси перевіряють лише головну сторінку, інші проходять внутрішні розділи, форми та API-ендпоінти. Для швидкого зовнішнього зрізу головної сторінки достатньо першого варіанта, але якщо сайт приймає оплату або має особистий кабінет, потрібен інший рівень перевірки. Варто прямо запитати в описі сервісу, що саме він обходить, і не сприймати слово «повний аудит» на віру.
Другий критерій — джерела даних. Кількість і актуальність репутаційних баз безпосередньо впливають на результат. Сервіс, який звіряє домен лише з одним списком, може пропустити загрозу, яку ловить інший. Хороший сервіс прозоро показує, які саме бази він використовує, і дає змогу перевірити конкретний пункт, а не віддає вердикт без пояснень.
Третій критерій — якість звіту. Список кодів помилок без пояснень мало допомагає власникові, який не є технічним фахівцем. Корисний звіт пріоритизує знахідки за критичністю, пояснює, чому кожна з них важлива, і дає конкретні рекомендації. Також важлива можливість експорту, бо звіт часто потрібно передати розробникам або хостингу.
Четвертий критерій — частота перевірки і моніторинг. Разова перевірка показує стан сайту на певний момент, але зараження може з’явитися через день після неї. Безперервний моніторинг з сповіщеннями про зміни важливіший для сайтів, які постійно оновлюються, ніж для статичних сторінок, які рідко змінюються. Для першої оцінки сайту можна скористатися перевіркою посилання на віруси, яка показує, чи не позначений ресурс як небезпечний у відомих базах і чи не веде він на підозрілі сторінки.
П’ятий критерій — обмеження безкоштовних варіантів. Безкоштовні сканери зазвичай мають ліміти на кількість перевірок, історію звітів і глибину аналізу. Це нормальна модель, але її варто розуміти заздалегідь. Якщо безкоштовна перевірка показала потенційну проблему, яка не підтверджується іншими джерелами, це привід для поглибленого аналізу, а не для паніки.
Покроковий процес перевірки сайту онлайн
Почніть з підготовки. Зберіть доступи до хостингу, FTP або SSH, адмінки CMS і бази даних, складіть перелік усіх доменів і субдоменів, які належать проєкту. Інвентаризуйте CMS, теми та плагіни з їхніми версіями. І обов’язково зробіть резервну копію сайту до будь-яких змін: без неї неможливо буде зрозуміти, що саме змінилося і як відкотити помилку.
Далі запустіть сканування і читайте результати в правильному порядку. Спочатку подивіться репутацію домену, бо якщо він у чорному списку, це пріоритет понад усе інше. Потім перейдіть до знахідок щодо коду, бо саме вони найчастіше вказують на активне зараження. Наприкінці перевірте конфігурацію сервера: SSL, заголовки, cookies, поштові записи. Такий порядок дає змогу спершу закрити загрози, які шкодять відвідувачам, і тільки потім займатися профілактикою.
Пріоритизація виправлень має бути жорсткою. До критичних належать шкідливий код, домен у чорному списку і скомпрометовані облікові записи. До середніх — застарілі компоненти з відомими вразливостями, відсутні заголовки безпеки, cookies без прапорців. До низьких — розкриття версії сервера, косметичні недоліки конфігурації. Змішувати ці категорії не варто: якщо всі знахідки здаються однаково важливими, команда витрачає час на дрібниці й пропускає головне.
Після виправлення обов’язково перевірте результат. Повторне сканування покаже, чи зникли знахідки. Якщо сайт був позначений у Google, подайте запит на повторну перевірку через звіт «Проблеми безпеки» в Search Console. Також варто перевірити домен у чорних списках безпосередньо, бо деякі записи знімаються з затримкою. Після цього налаштуйте регулярну перевірку, щоб наступна проблема була помічена раніше, ніж її побачать відвідувачі.
Окремо варто сказати про хибнопозитивні результати. Евристичний аналіз коду може позначити обфускований скрипт, який насправді є легальним лічильником відвідуваності або віджетом підтримки. Перш ніж видаляти щось, переконайтеся, що це не ваш власний скрипт або скрипт, який ви свідомо підключили. Видалення робочого коду може зламати сайт, а видалення шкідливого — залишити зловмисникові доступ.

Що робити, якщо перевірка знайшла ознаки зараження
Перший крок — не панікувати і не видаляти все підряд. Зробіть копію сайту й бази в поточному стані: вона знадобиться, щоб зрозуміти, як саме вас зламали, і щоб не втратити дані під час очищення. Другий крок — змініть паролі: хостинг, FTP або SSH, адмінка CMS, база даних. Видаліть незнайомих адміністраторів, які з’явилися в списку користувачів.
Третій крок — знайти джерело. Код зі звіту варто пошукати в файлах теми, у index.php, у .htaccess і в базі даних. Перегляньте файли, змінені нещодавно, і PHP-файли в теках для завантажень, бо там їх бути не повинно. Часто саме застаріла тема або плагін стає дверима, через які зловмисник увійшов, тому оновіть CMS, компоненти і видаліть усе, чим не користуєтеся.
Четвертий крок — перевірити знову і подати запит на повторну перевірку, якщо сайт позначено пошуковою системою. Коли все чисто, варто ще тиждень спостерігати за логами та звітами, бо повторне зараження через залишений бекдор — звичайна історія. Якщо ж очищення самотужки не вдається або сайт приносить помітний дохід, краще звернутися до фахівця з доступом до файлів сервера.
Коли зовнішньої перевірки замало
Зовнішній сканер не замінює перевірку файлів на сервері. Він не бачить веб-шели, які нічого не виводять на головну, не знайде бекдор, що вмикається лише для певного User-Agent, і не відкриє службові файли, які залишилися в публічному доступі. Тому результат «чисто» варто сприймати як добрий знак, але не як остаточну гарантію безпеки.
Якщо сайт уже зламували, через нього приймають оплату або він приносить помітний дохід, має сенс глибока перевірка з доступом до сервера. Після підтвердження, що сайт належить вам, PromoPilot Shield дозволяє перевірити відкриті службові файли на кшталт .git, .env і бекапів, вразливості CMS і плагінів, а також клоакінг, коли шкідливий вміст показується лише пошуковому роботові. Окремий серверний агент лише для читання шукає веб-шели та впроваджений код у файлах сайту і звіряє цілісність ядра WordPress.
Підсумок простий. Зовнішня перевірка сайту на віруси та вразливості онлайн — це швидкий і безпечний спосіб побачити те, що бачать відвідувачі та пошукові системи: шкідливий код на головній, домени в чорних списках, стан SSL, заголовки безпеки, cookies, застарілі CMS і поштові записи. Вона дає змогу відрізнити зараження від вразливості й помилки конфігурації, розставити пріоритети виправлень і перевірити результат. Але вона не бачить усього, що відбувається на сервері, тому її варто поєднувати з регулярним моніторингом і, за потреби, з глибшим аналізом. Почніть із перевірки сьогодні, закрийте критичні знахідки, а потім переходьте до профілактики, бо закрита дірка завжди дешевша за очищений після атаки сайт.