Як захистити сайт від злому: повний чекліст безпеки для власника бізнесу

Чому зламують сайти

Більшість зламів — не цілеспрямовані атаки саме на ваш бізнес. Це автоматизовані боти, які сканують тисячі сайтів на відомі вразливості. Знайшли слабке місце — зламали. Не знайшли — пішли далі. Вашому сайту не потрібно бути «цікавим» для хакерів — достатньо бути незахищеним.

Що роблять зі зламаними сайтами:

  • Розсилка спаму — ваш сервер використовують для відправки тисяч спам-листів. Результат: IP потрапляє в чорний список, email перестає доходити до клієнтів
  • Редиректи — відвідувачі потрапляють на фішингові або порно-сайти замість вашого. Google бачить це і видаляє сайт з видачі
  • Майнінг криптовалюти — на ваш сайт вбудовують скрипт, який використовує ресурси комп'ютерів відвідувачів
  • Крадіжка даних — якщо є форми з персональними даними або платіжними реквізитами
  • SEO-спам — на ваших сторінках з'являються приховані посилання на чужі сайти. Ваші позиції в Google обвалюються

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

Базовий чекліст: 10 обов'язкових кроків

Ці пункти актуальні для будь-якого сайту — WordPress, самописний, на конструкторі:

1. SSL-сертифікат

Сайт повинен працювати через HTTPS. SSL-сертифікат шифрує дані між браузером і сервером. Без нього паролі, форми і платіжні дані передаються відкритим текстом. Let's Encrypt — безкоштовний і достатній для більшості сайтів.

2. Надійні паролі

Мінімум 12 символів, великі і малі літери, цифри, спеціальні символи. Не використовуйте один пароль для адмінки, хостингу, FTP і пошти. Використовуйте менеджер паролів (Bitwarden, 1Password). Пароль «admin123» або «назвакомпанії2026» — це не пароль, це запрошення для ботів.

3. Двофакторна автентифікація (2FA)

Увімкніть 2FA для входу в адмінку, хостинг-панель і поштову скриньку. Навіть якщо хтось дізнається ваш пароль — без другого фактору (код з додатку або SMS) увійти не зможе.

4. Регулярні оновлення

CMS, плагіни, теми, PHP, серверне ПЗ — все повинно бути оновленим. 80% зламів WordPress відбуваються через застарілі плагіни з відомими вразливостями. Оновлення закриває ці вразливості.

5. Обмеження спроб входу

Боти перебирають тисячі комбінацій паролів (brute force). Обмежте кількість невдалих спроб входу — після 5 невдач блокуйте IP на 30 хвилин. Це зупиняє більшість автоматизованих атак.

6. Зміна стандартних URL

Стандартна адреса входу WordPress (/wp-admin, /wp-login.php) відома всім ботам. Змініть URL на щось нестандартне. Це не захист від цілеспрямованої атаки, але відсікає 90% автоматизованих спроб.

7. Правильні дозволи файлів

Файли: 644. Директорії: 755. Конфігураційний файл (wp-config.php): 600 або 640. Ніколи не ставте 777 — це дає повний доступ будь-кому.

8. Захист від SQL-ін'єкцій і XSS

Всі дані з форм повинні проходити валідацію і санітизацію на сервері. Ніколи не довіряйте даним від користувача — навіть якщо форма «проста». Використовуйте підготовлені запити (prepared statements) для роботи з базою даних.

9. Заголовки безпеки (Security Headers)

Налаштуйте HTTP-заголовки: X-Content-Type-Options, X-Frame-Options, Content-Security-Policy, Strict-Transport-Security. Вони запобігають багатьом типам атак: clickjacking, MIME-sniffing, XSS. Додаються в .htaccess або конфігурації сервера.

10. Видаліть все зайве

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

Хочете знати що гальмує ваш сайт?

SEO-аудит — знайду технічні проблеми і дам план виправлень

Замовити аудит

Безпека WordPress

WordPress — найпопулярніша CMS у світі, і саме тому вона найчастіша мішень для атак. Але проблема не в самому WordPress — він досить безпечний. Проблема у плагінах, темах і недбалому адмініструванні.

Додаткові кроки для WordPress:

  • Не використовуйте логін «admin» — створіть адміністратора з унікальним іменем і видаліть стандартного
  • Вимкніть XML-RPC — якщо не використовуєте мобільний додаток WordPress. Це частий вектор brute force атак
  • Вимкніть редагування файлів з адмінки — додайте define('DISALLOW_FILE_EDIT', true); в wp-config.php
  • Обмежте REST API — за замовчуванням REST API відкриває інформацію про користувачів сайту
  • Плагіни безпеки — Wordfence або Sucuri для моніторингу, файрволу і сканування. Один плагін безпеки — достатньо, два — конфлікт
  • Перевіряйте плагіни перед установкою — дата останнього оновлення, кількість активних установок, рейтинг, відгуки. Плагін, який не оновлювався 2+ роки — потенційна загроза

Детальніше про внутрішню архітектуру WordPress — в статті як працює WordPress під капотом.

Що залежить від хостингу

Навіть ідеально налаштований сайт вразливий, якщо хостинг не забезпечує базовий рівень безпеки. Що повинен надавати хостинг-провайдер:

  • Актуальна версія PHP — PHP 7.x вже не отримує оновлень безпеки. Мінімум PHP 8.1, бажано 8.2+
  • Ізоляція акаунтів — на shared-хостингу ваш сайт не повинен мати доступ до файлів інших клієнтів
  • Автоматичні бекапи — щоденні, з можливістю відновлення в один клік
  • WAF (Web Application Firewall) — фільтрує шкідливі запити до того, як вони дійдуть до сайту
  • Захист від DDoS — базовий захист на рівні інфраструктури
  • Моніторинг malware — автоматичне сканування файлів на шкідливий код

Дешевий хостинг за 30-50 грн/міс часто економить на безпеці. Це не означає що дорогий хостинг автоматично безпечний — але це один з факторів при виборі.

Бекапи: як не втратити все

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

Правила бекапів:

  • Правило 3-2-1 — 3 копії, на 2 різних носіях, 1 копія в іншому фізичному місці (хмара)
  • Автоматичні, не ручні — щоденний автоматичний бекап надійніший за «я збережу коли згадаю»
  • Файли + база даних — бекап тільки файлів або тільки бази — не повний бекап
  • Перевіряйте відновлення — бекап, який неможливо відновити, не бекап. Тестуйте відновлення хоча б раз на квартал
  • Не зберігайте бекапи тільки на тому ж сервері — якщо сервер зламають або він впаде, бекапи зникнуть разом з сайтом

Для WordPress: UpdraftPlus (безкоштовний, відправляє бекапи на Google Drive або Dropbox). Для самописних сайтів: cron-скрипт, який архівує файли + дамп бази і відправляє на зовнішнє сховище.

Моніторинг і раннє виявлення

Чим раніше ви дізнаєтесь про проблему — тим менше шкоди. Налаштуйте:

  • Uptime-моніторинг — сервіси типу UptimeRobot (безкоштовний) перевіряють сайт кожні 5 хвилин і повідомляють якщо він недоступний
  • Google Search Console — повідомить якщо Google виявить malware або проблеми з безпекою на сайті
  • Сканер файлів — відстежує зміни у файлах сайту. Якщо файл змінився без вашого відома — це тривожний сигнал
  • Журнал входів — фіксуйте хто, коли і звідки входив в адмінку. Незнайомий IP = можлива компрометація

Не ігноруйте email-повідомлення від хостингу і Google Search Console. «Виявлено проблему з безпекою» — це не спам, це реальна загроза.

Що робити якщо сайт зламали

Якщо злом вже стався — дійте швидко і послідовно:

  • Не панікуйте, але дійте негайно — кожна година зі зламаним сайтом = втрата позицій і довіри
  • Змініть всі паролі — адмінка, хостинг, FTP, база даних, пошта. Все. Зараз
  • Визначте масштаб — які файли змінені, чи є шкідливий код у базі даних, чи є бекдори
  • Відновіть з чистого бекапу — якщо є бекап до моменту злому. Не забудьте перевірити що бекап сам не заражений
  • Або очистіть вручну — якщо бекапу немає, видаліть шкідливий код з кожного зараженого файлу
  • Закрийте вразливість — зрозумійте як зламали і виправте причину, інакше зламають знову
  • Перевірте через Google Search Console — якщо Google позначив сайт як небезпечний, подайте запит на повторну перевірку

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

Часті запитання

Базовий захист (SSL, паролі, оновлення, бекапи) — безкоштовно, потрібен тільки час. Плагін безпеки для WordPress (Wordfence Premium) — від $119/рік. Послуга з налаштування безпеки фахівцем — від 3 000-5 000 грн разово. Це набагато дешевше ніж відновлення після злому, яке може коштувати 5 000-15 000 грн і тижні простою.

Конструктори беруть на себе базову безпеку: SSL, оновлення, захист від DDoS. Але ви все одно відповідаєте за надійний пароль і двофакторну автентифікацію. Злам акаунту через слабкий пароль конструктор не запобіжить.

Мінорні оновлення безпеки — якнайшвидше (протягом 1-2 днів). Мажорні оновлення — після появи перших відгуків (зачекайте 3-5 днів щоб впевнитись що оновлення стабільне). Завжди робіть бекап перед оновленням.

Для більшості малих бізнесів — корисний, але не обов'язковий. Cloudflare (безкоштовний план) дає базовий захист від DDoS, CDN для пришвидшення сайту і додатковий рівень фільтрації трафіку. Якщо ваш сайт вже атакували або у вас є чутливі дані — варто підключити.

Перевірте на Google Safe Browsing (transparencyreport.google.com), просканувате через Sucuri SiteCheck (sitecheck.sucuri.net), перегляньте Google Search Console на попередження про безпеку. Також зверніть увагу на симптоми: незнайомі файли на сервері, редиректи на чужі сайти, скарги від відвідувачів, різкий зріст трафіку зі спам-країн.

Висновок

Безпека сайту — це не одноразова дія, а постійний процес. Базовий чекліст (SSL, паролі, оновлення, бекапи, обмеження входу) закриває 90% ризиків і не потребує великих витрат. Ігнорування безпеки — це не «авось пронесе», це питання часу.

Починайте з базових кроків сьогодні: змініть слабкі паролі, увімкніть 2FA, перевірте оновлення, налаштуйте бекапи. Кожен виконаний пункт з чекліста — це закрита двері для ботів.

Не впевнені в безпеці свого сайту? Замовте аудит — перевірю сайт на вразливості, налаштую захист і бекапи. А якщо сайт вже заражений — допоможу з видаленням вірусів і відновленням.

Читайте також